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
|