You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
142 lines
2.8 KiB
142 lines
2.8 KiB
// 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_
|