// dispatcher interface file #ifndef _DISPIF_H_ #define _DISPIF_H_ #ifdef __cplusplus extern "C" { #endif typedef BOOL FIMPERSONATECLIENT( PST_PROVIDER_HANDLE *hPSTProv ); FIMPERSONATECLIENT FImpersonateClient; typedef BOOL FREVERTTOSELF( PST_PROVIDER_HANDLE *hPSTProv ); FREVERTTOSELF FRevertToSelf; typedef BOOL FISACLSATISFIED( PST_PROVIDER_HANDLE *hPSTProv, PST_ACCESSRULESET *psRules, DWORD dwAccess, LPVOID // coming soon: fill a status structure with data about access attempt ); FISACLSATISFIED FIsACLSatisfied; typedef BOOL FGETCALLERNAME( PST_PROVIDER_HANDLE *hPSTProv, LPWSTR* ppszCallerName, DWORD_PTR *lpdwBaseAddress ); FGETCALLERNAME FGetCallerName; typedef BOOL FGETUSER( PST_PROVIDER_HANDLE *hPSTProv, LPWSTR* pszUser ); FGETUSER FGetUser; typedef BOOL FGETSERVERPARAM( IN PST_PROVIDER_HANDLE *hPSTProv, IN DWORD dwParam, IN LPVOID pData, IN OUT DWORD *pcbData ); FGETSERVERPARAM FGetServerParam; typedef BOOL FSETSERVERPARAM( IN PST_PROVIDER_HANDLE *hPSTProv, IN DWORD dwParam, IN LPVOID pData, IN DWORD pcbData ); FSETSERVERPARAM FSetServerParam; // HACKHACK HACKHACK HACKHACK typedef BOOL FGETPASSWORD95LOWERCASE( LPBYTE rgbPwd ); FGETPASSWORD95LOWERCASE FGetPassword95LowerCase; // a single structure to hold all of these callbacks typedef struct _DISPIF_CALLBACKS { DWORD cbSize; // sizeof(DISPIF_CALLBACKS) FISACLSATISFIED* pfnFIsACLSatisfied; FGETUSER* pfnFGetUser; FGETCALLERNAME* pfnFGetCallerName; FIMPERSONATECLIENT* pfnFImpersonateClient; FREVERTTOSELF* pfnFRevertToSelf; FGETSERVERPARAM* pfnFGetServerParam; FSETSERVERPARAM* pfnFSetServerParam; } DISPIF_CALLBACKS, *PDISPIF_CALLBACKS; // // private interfaces in the server which are not exported for provider use // BOOL FInternalCreateType( PST_PROVIDER_HANDLE *phPSTProv, PST_KEY KeyLocation, const GUID *pguidType, PPST_TYPEINFO pinfoType, DWORD dwFlags ); BOOL FInternalCreateSubtype( PST_PROVIDER_HANDLE *phPSTProv, PST_KEY KeyLocation, const GUID *pguidType, const GUID *pguidSubtype, PPST_TYPEINFO pinfoSubtype, DWORD dwFlags ); BOOL FInternalWriteAccessRuleset( PST_PROVIDER_HANDLE *phPSTProv, PST_KEY KeyLocation, const GUID *pguidType, const GUID *pguidSubtype, PPST_ACCESSRULESET psRules, DWORD dwFlags ); #ifdef __cplusplus } #endif #endif // _DISPIF_H_