home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / vc98 / include / iaccess.h < prev    next >
C/C++ Source or Header  |  1998-04-25  |  8KB  |  249 lines

  1. #include <accctrl.h>
  2.  
  3. #ifndef __IAccessControl_INTERFACE_DEFINED__
  4. #define __IAccessControl_INTERFACE_DEFINED__
  5.  
  6. /****************************************
  7.  * Generated header for interface: __MIDL__intf_0077
  8.  * at Tue Oct 29 15:38:21 1996
  9.  * using MIDL 3.00.44
  10.  ****************************************/
  11. /* [local] */
  12.  
  13.  
  14. typedef /* [allocate] */ PACTRL_ACCESSW PACTRL_ACCESSW_ALLOCATE_ALL_NODES;
  15.  
  16. typedef /* [allocate] */ PACTRL_AUDITW PACTRL_AUDITW_ALLOCATE_ALL_NODES;
  17.  
  18.  
  19.  
  20.  
  21.  
  22. /****************************************
  23.  * Generated header for interface: IAccessControl
  24.  * at Tue Oct 29 15:38:21 1996
  25.  * using MIDL 3.00.44
  26.  ****************************************/
  27. /* [unique][uuid][object] */
  28.  
  29.  
  30.  
  31. EXTERN_C const IID IID_IAccessControl;
  32.  
  33. #if defined(__cplusplus) && !defined(CINTERFACE)
  34.  
  35.     interface IAccessControl : public IUnknown
  36.     {
  37.     public:
  38.         virtual HRESULT STDMETHODCALLTYPE GrantAccessRights(
  39.             /* [in] */ PACTRL_ACCESSW pAccessList) = 0;
  40.  
  41.         virtual HRESULT STDMETHODCALLTYPE SetAccessRights(
  42.             /* [in] */ PACTRL_ACCESSW pAccessList) = 0;
  43.  
  44.         virtual HRESULT STDMETHODCALLTYPE SetOwner(
  45.             /* [in] */ PTRUSTEEW pOwner,
  46.             /* [in] */ PTRUSTEEW pGroup) = 0;
  47.  
  48.         virtual HRESULT STDMETHODCALLTYPE RevokeAccessRights(
  49.             /* [in] */ LPWSTR lpProperty,
  50.             /* [in] */ ULONG cTrustees,
  51.             /* [size_is][in] */ TRUSTEEW __RPC_FAR prgTrustees[  ]) = 0;
  52.  
  53.         virtual HRESULT STDMETHODCALLTYPE GetAllAccessRights(
  54.             /* [in] */ LPWSTR lpProperty,
  55.             /* [out] */ PACTRL_ACCESSW_ALLOCATE_ALL_NODES __RPC_FAR *ppAccessList,
  56.             /* [out] */ PTRUSTEEW __RPC_FAR *ppOwner,
  57.             /* [out] */ PTRUSTEEW __RPC_FAR *ppGroup) = 0;
  58.  
  59.         virtual HRESULT STDMETHODCALLTYPE IsAccessAllowed(
  60.             /* [in] */ PTRUSTEEW pTrustee,
  61.             /* [in] */ LPWSTR lpProperty,
  62.             /* [in] */ ACCESS_RIGHTS AccessRights,
  63.             /* [out] */ BOOL __RPC_FAR *pfAccessAllowed) = 0;
  64.  
  65.     };
  66.  
  67. #else   /* C style interface */
  68.  
  69.     typedef struct IAccessControlVtbl
  70.     {
  71.         BEGIN_INTERFACE
  72.  
  73.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
  74.             IAccessControl __RPC_FAR * This,
  75.             /* [in] */ REFIID riid,
  76.             /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  77.  
  78.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
  79.             IAccessControl __RPC_FAR * This);
  80.  
  81.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
  82.             IAccessControl __RPC_FAR * This);
  83.  
  84.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GrantAccessRights )(
  85.             IAccessControl __RPC_FAR * This,
  86.             /* [in] */ PACTRL_ACCESSW pAccessList);
  87.  
  88.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetAccessRights )(
  89.             IAccessControl __RPC_FAR * This,
  90.             /* [in] */ PACTRL_ACCESSW pAccessList);
  91.  
  92.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetOwner )(
  93.             IAccessControl __RPC_FAR * This,
  94.             /* [in] */ PTRUSTEEW pOwner,
  95.             /* [in] */ PTRUSTEEW pGroup);
  96.  
  97.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *RevokeAccessRights )(
  98.             IAccessControl __RPC_FAR * This,
  99.             /* [in] */ LPWSTR lpProperty,
  100.             /* [in] */ ULONG cTrustees,
  101.             /* [size_is][in] */ TRUSTEEW __RPC_FAR prgTrustees[  ]);
  102.  
  103.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAllAccessRights )(
  104.             IAccessControl __RPC_FAR * This,
  105.             /* [in] */ LPWSTR lpProperty,
  106.             /* [out] */ PACTRL_ACCESSW_ALLOCATE_ALL_NODES __RPC_FAR *ppAccessList,
  107.             /* [out] */ PTRUSTEEW __RPC_FAR *ppOwner,
  108.             /* [out] */ PTRUSTEEW __RPC_FAR *ppGroup);
  109.  
  110.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *IsAccessAllowed )(
  111.             IAccessControl __RPC_FAR * This,
  112.             /* [in] */ PTRUSTEEW pTrustee,
  113.             /* [in] */ LPWSTR lpProperty,
  114.             /* [in] */ ACCESS_RIGHTS AccessRights,
  115.             /* [out] */ BOOL __RPC_FAR *pfAccessAllowed);
  116.  
  117.         END_INTERFACE
  118.     } IAccessControlVtbl;
  119.  
  120.     interface IAccessControl
  121.     {
  122.         CONST_VTBL struct IAccessControlVtbl __RPC_FAR *lpVtbl;
  123.     };
  124.  
  125.  
  126.  
  127. #ifdef COBJMACROS
  128.  
  129.  
  130. #define IAccessControl_QueryInterface(This,riid,ppvObject)      \
  131.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  132.  
  133. #define IAccessControl_AddRef(This)     \
  134.     (This)->lpVtbl -> AddRef(This)
  135.  
  136. #define IAccessControl_Release(This)    \
  137.     (This)->lpVtbl -> Release(This)
  138.  
  139.  
  140. #define IAccessControl_GrantAccessRights(This,pAccessList)      \
  141.     (This)->lpVtbl -> GrantAccessRights(This,pAccessList)
  142.  
  143. #define IAccessControl_SetAccessRights(This,pAccessList)        \
  144.     (This)->lpVtbl -> SetAccessRights(This,pAccessList)
  145.  
  146. #define IAccessControl_SetOwner(This,pOwner,pGroup)     \
  147.     (This)->lpVtbl -> SetOwner(This,pOwner,pGroup)
  148.  
  149. #define IAccessControl_RevokeAccessRights(This,lpProperty,cTrustees,prgTrustees)        \
  150.     (This)->lpVtbl -> RevokeAccessRights(This,lpProperty,cTrustees,prgTrustees)
  151.  
  152. #define IAccessControl_GetAllAccessRights(This,lpProperty,ppAccessList,ppOwner,ppGroup) \
  153.     (This)->lpVtbl -> GetAllAccessRights(This,lpProperty,ppAccessList,ppOwner,ppGroup)
  154.  
  155. #define IAccessControl_IsAccessAllowed(This,pTrustee,lpProperty,AccessRights,pfAccessAllowed)   \
  156.     (This)->lpVtbl -> IsAccessAllowed(This,pTrustee,lpProperty,AccessRights,pfAccessAllowed)
  157.  
  158. #endif /* COBJMACROS */
  159.  
  160.  
  161. #endif  /* C style interface */
  162.  
  163.  
  164.  
  165. HRESULT STDMETHODCALLTYPE IAccessControl_GrantAccessRights_Proxy(
  166.     IAccessControl __RPC_FAR * This,
  167.     /* [in] */ PACTRL_ACCESSW pAccessList);
  168.  
  169.  
  170. void __RPC_STUB IAccessControl_GrantAccessRights_Stub(
  171.     IRpcStubBuffer *This,
  172.     IRpcChannelBuffer *_pRpcChannelBuffer,
  173.     PRPC_MESSAGE _pRpcMessage,
  174.     DWORD *_pdwStubPhase);
  175.  
  176.  
  177. HRESULT STDMETHODCALLTYPE IAccessControl_SetAccessRights_Proxy(
  178.     IAccessControl __RPC_FAR * This,
  179.     /* [in] */ PACTRL_ACCESSW pAccessList);
  180.  
  181.  
  182. void __RPC_STUB IAccessControl_SetAccessRights_Stub(
  183.     IRpcStubBuffer *This,
  184.     IRpcChannelBuffer *_pRpcChannelBuffer,
  185.     PRPC_MESSAGE _pRpcMessage,
  186.     DWORD *_pdwStubPhase);
  187.  
  188.  
  189. HRESULT STDMETHODCALLTYPE IAccessControl_SetOwner_Proxy(
  190.     IAccessControl __RPC_FAR * This,
  191.     /* [in] */ PTRUSTEEW pOwner,
  192.     /* [in] */ PTRUSTEEW pGroup);
  193.  
  194.  
  195. void __RPC_STUB IAccessControl_SetOwner_Stub(
  196.     IRpcStubBuffer *This,
  197.     IRpcChannelBuffer *_pRpcChannelBuffer,
  198.     PRPC_MESSAGE _pRpcMessage,
  199.     DWORD *_pdwStubPhase);
  200.  
  201.  
  202. HRESULT STDMETHODCALLTYPE IAccessControl_RevokeAccessRights_Proxy(
  203.     IAccessControl __RPC_FAR * This,
  204.     /* [in] */ LPWSTR lpProperty,
  205.     /* [in] */ ULONG cTrustees,
  206.     /* [size_is][in] */ TRUSTEEW __RPC_FAR prgTrustees[  ]);
  207.  
  208.  
  209. void __RPC_STUB IAccessControl_RevokeAccessRights_Stub(
  210.     IRpcStubBuffer *This,
  211.     IRpcChannelBuffer *_pRpcChannelBuffer,
  212.     PRPC_MESSAGE _pRpcMessage,
  213.     DWORD *_pdwStubPhase);
  214.  
  215.  
  216. HRESULT STDMETHODCALLTYPE IAccessControl_GetAllAccessRights_Proxy(
  217.     IAccessControl __RPC_FAR * This,
  218.     /* [in] */ LPWSTR lpProperty,
  219.     /* [out] */ PACTRL_ACCESSW_ALLOCATE_ALL_NODES __RPC_FAR *ppAccessList,
  220.     /* [out] */ PTRUSTEEW __RPC_FAR *ppOwner,
  221.     /* [out] */ PTRUSTEEW __RPC_FAR *ppGroup);
  222.  
  223.  
  224. void __RPC_STUB IAccessControl_GetAllAccessRights_Stub(
  225.     IRpcStubBuffer *This,
  226.     IRpcChannelBuffer *_pRpcChannelBuffer,
  227.     PRPC_MESSAGE _pRpcMessage,
  228.     DWORD *_pdwStubPhase);
  229.  
  230.  
  231. HRESULT STDMETHODCALLTYPE IAccessControl_IsAccessAllowed_Proxy(
  232.     IAccessControl __RPC_FAR * This,
  233.     /* [in] */ PTRUSTEEW pTrustee,
  234.     /* [in] */ LPWSTR lpProperty,
  235.     /* [in] */ ACCESS_RIGHTS AccessRights,
  236.     /* [out] */ BOOL __RPC_FAR *pfAccessAllowed);
  237.  
  238.  
  239. void __RPC_STUB IAccessControl_IsAccessAllowed_Stub(
  240.     IRpcStubBuffer *This,
  241.     IRpcChannelBuffer *_pRpcChannelBuffer,
  242.     PRPC_MESSAGE _pRpcMessage,
  243.     DWORD *_pdwStubPhase);
  244.  
  245.  
  246.  
  247. #endif  /* __IAccessControl_INTERFACE_DEFINED__ */
  248.  
  249.