46 lines
896 B
C++
46 lines
896 B
C++
#ifdef __cplusplus
|
|
|
|
#include "capi.h"
|
|
|
|
// WinVerifyTrust delay load modelled on shell's urlmonp.h
|
|
|
|
#define DELAY_LOAD_WVT
|
|
|
|
class Cwvt
|
|
{
|
|
public:
|
|
#ifdef DELAY_LOAD_WVT
|
|
#define DELAYWVTAPI(_fn, _args, _nargs) \
|
|
HRESULT _fn _args { \
|
|
HRESULT hres = Init(); \
|
|
if (SUCCEEDED(hres)) { \
|
|
hres = _pfn##_fn _nargs; \
|
|
} \
|
|
return hres; } \
|
|
HRESULT (STDAPICALLTYPE* _pfn##_fn) _args;
|
|
|
|
HRESULT Init(void);
|
|
Cwvt();
|
|
~Cwvt();
|
|
|
|
BOOL m_fInited;
|
|
HMODULE m_hMod;
|
|
#else
|
|
#define DELAYWVTAPI(_fn, _args, _nargs) \
|
|
HRESULT _fn _args { \
|
|
HRESULT hr = ::#_fn _nargs; \
|
|
}
|
|
|
|
#endif
|
|
|
|
private:
|
|
DELAYWVTAPI(WinVerifyTrust,
|
|
(HWND hwnd, GUID * ActionID, LPVOID ActionData),
|
|
(hwnd, ActionID, ActionData));
|
|
|
|
public:
|
|
HRESULT VerifyTrust(HANDLE hFile, HWND hWnd, LPCWSTR szStatusText);
|
|
|
|
};
|
|
#endif
|