home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 27 / IOPROG_27.ISO / SOFT / ADSDK.ZIP / ResourceKit / SDK / ADsSecurity.h < prev    next >
Encoding:
C/C++ Source or Header  |  1999-05-17  |  16.7 KB  |  541 lines

  1. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  2.  
  3.  
  4. /* File created by MIDL compiler version 5.01.0164 */
  5. /* at Mon May 17 12:54:52 1999
  6.  */
  7. /* Compiler settings for C:\projects\RTK\ADsSecurity\ADsSecurity.idl:
  8.     Oicf (OptLev=i2), W1, Zp8, env=Win32, ms_ext, c_ext
  9.     error checks: allocation ref bounds_check enum stub_data 
  10. */
  11. //@@MIDL_FILE_HEADING(  )
  12.  
  13.  
  14. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  15. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  16. #define __REQUIRED_RPCNDR_H_VERSION__ 440
  17. #endif
  18.  
  19. #include "rpc.h"
  20. #include "rpcndr.h"
  21.  
  22. #ifndef __RPCNDR_H_VERSION__
  23. #error this stub requires an updated version of <rpcndr.h>
  24. #endif // __RPCNDR_H_VERSION__
  25.  
  26. #ifndef COM_NO_WINDOWS_H
  27. #include "windows.h"
  28. #include "ole2.h"
  29. #endif /*COM_NO_WINDOWS_H*/
  30.  
  31. #ifndef __ADsSecurity_h__
  32. #define __ADsSecurity_h__
  33.  
  34. #ifdef __cplusplus
  35. extern "C"{
  36. #endif 
  37.  
  38. /* Forward Declarations */ 
  39.  
  40. #ifndef __IADsSecurity_FWD_DEFINED__
  41. #define __IADsSecurity_FWD_DEFINED__
  42. typedef interface IADsSecurity IADsSecurity;
  43. #endif     /* __IADsSecurity_FWD_DEFINED__ */
  44.  
  45.  
  46. #ifndef __IADsSID_FWD_DEFINED__
  47. #define __IADsSID_FWD_DEFINED__
  48. typedef interface IADsSID IADsSID;
  49. #endif     /* __IADsSID_FWD_DEFINED__ */
  50.  
  51.  
  52. #ifndef __ADsSecurity_FWD_DEFINED__
  53. #define __ADsSecurity_FWD_DEFINED__
  54.  
  55. #ifdef __cplusplus
  56. typedef class ADsSecurity ADsSecurity;
  57. #else
  58. typedef struct ADsSecurity ADsSecurity;
  59. #endif /* __cplusplus */
  60.  
  61. #endif     /* __ADsSecurity_FWD_DEFINED__ */
  62.  
  63.  
  64. #ifndef __ADsSID_FWD_DEFINED__
  65. #define __ADsSID_FWD_DEFINED__
  66.  
  67. #ifdef __cplusplus
  68. typedef class ADsSID ADsSID;
  69. #else
  70. typedef struct ADsSID ADsSID;
  71. #endif /* __cplusplus */
  72.  
  73. #endif     /* __ADsSID_FWD_DEFINED__ */
  74.  
  75.  
  76. /* header files for imported files */
  77. #include "oaidl.h"
  78. #include "ocidl.h"
  79.  
  80. void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
  81. void __RPC_USER MIDL_user_free( void __RPC_FAR * ); 
  82.  
  83. #ifndef __IADsSecurity_INTERFACE_DEFINED__
  84. #define __IADsSecurity_INTERFACE_DEFINED__
  85.  
  86. /* interface IADsSecurity */
  87. /* [unique][helpstring][dual][uuid][object] */ 
  88.  
  89.  
  90. EXTERN_C const IID IID_IADsSecurity;
  91.  
  92. #if defined(__cplusplus) && !defined(CINTERFACE)
  93.     
  94.     MIDL_INTERFACE("212029A9-C50D-11D2-BC7E-00C04FD430AF")
  95.     IADsSecurity : public IDispatch
  96.     {
  97.     public:
  98.         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSecurityDescriptor( 
  99.             /* [optional][in] */ VARIANT varPath,
  100.             /* [retval][out] */ VARIANT __RPC_FAR *pVariant) = 0;
  101.         
  102.         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetSecurityDescriptor( 
  103.             /* [in] */ VARIANT varData,
  104.             /* [optional][in] */ VARIANT varPath) = 0;
  105.         
  106.         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSID( 
  107.             /* [in] */ VARIANT varPath,
  108.             /* [retval][out] */ VARIANT __RPC_FAR *pRet) = 0;
  109.         
  110.         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSecurityDescriptorAs( 
  111.             /* [in] */ long lFormat,
  112.             /* [optional][in] */ VARIANT varPath,
  113.             /* [retval][out] */ VARIANT __RPC_FAR *pRet) = 0;
  114.         
  115.     };
  116.     
  117. #else     /* C style interface */
  118.  
  119.     typedef struct IADsSecurityVtbl
  120.     {
  121.         BEGIN_INTERFACE
  122.         
  123.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
  124.             IADsSecurity __RPC_FAR * This,
  125.             /* [in] */ REFIID riid,
  126.             /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  127.         
  128.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
  129.             IADsSecurity __RPC_FAR * This);
  130.         
  131.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
  132.             IADsSecurity __RPC_FAR * This);
  133.         
  134.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfoCount )( 
  135.             IADsSecurity __RPC_FAR * This,
  136.             /* [out] */ UINT __RPC_FAR *pctinfo);
  137.         
  138.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfo )( 
  139.             IADsSecurity __RPC_FAR * This,
  140.             /* [in] */ UINT iTInfo,
  141.             /* [in] */ LCID lcid,
  142.             /* [out] */ ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo);
  143.         
  144.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetIDsOfNames )( 
  145.             IADsSecurity __RPC_FAR * This,
  146.             /* [in] */ REFIID riid,
  147.             /* [size_is][in] */ LPOLESTR __RPC_FAR *rgszNames,
  148.             /* [in] */ UINT cNames,
  149.             /* [in] */ LCID lcid,
  150.             /* [size_is][out] */ DISPID __RPC_FAR *rgDispId);
  151.         
  152.         /* [local] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Invoke )( 
  153.             IADsSecurity __RPC_FAR * This,
  154.             /* [in] */ DISPID dispIdMember,
  155.             /* [in] */ REFIID riid,
  156.             /* [in] */ LCID lcid,
  157.             /* [in] */ WORD wFlags,
  158.             /* [out][in] */ DISPPARAMS __RPC_FAR *pDispParams,
  159.             /* [out] */ VARIANT __RPC_FAR *pVarResult,
  160.             /* [out] */ EXCEPINFO __RPC_FAR *pExcepInfo,
  161.             /* [out] */ UINT __RPC_FAR *puArgErr);
  162.         
  163.         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetSecurityDescriptor )( 
  164.             IADsSecurity __RPC_FAR * This,
  165.             /* [optional][in] */ VARIANT varPath,
  166.             /* [retval][out] */ VARIANT __RPC_FAR *pVariant);
  167.         
  168.         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetSecurityDescriptor )( 
  169.             IADsSecurity __RPC_FAR * This,
  170.             /* [in] */ VARIANT varData,
  171.             /* [optional][in] */ VARIANT varPath);
  172.         
  173.         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetSID )( 
  174.             IADsSecurity __RPC_FAR * This,
  175.             /* [in] */ VARIANT varPath,
  176.             /* [retval][out] */ VARIANT __RPC_FAR *pRet);
  177.         
  178.         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetSecurityDescriptorAs )( 
  179.             IADsSecurity __RPC_FAR * This,
  180.             /* [in] */ long lFormat,
  181.             /* [optional][in] */ VARIANT varPath,
  182.             /* [retval][out] */ VARIANT __RPC_FAR *pRet);
  183.         
  184.         END_INTERFACE
  185.     } IADsSecurityVtbl;
  186.  
  187.     interface IADsSecurity
  188.     {
  189.         CONST_VTBL struct IADsSecurityVtbl __RPC_FAR *lpVtbl;
  190.     };
  191.  
  192.     
  193.  
  194. #ifdef COBJMACROS
  195.  
  196.  
  197. #define IADsSecurity_QueryInterface(This,riid,ppvObject)    \
  198.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  199.  
  200. #define IADsSecurity_AddRef(This)    \
  201.     (This)->lpVtbl -> AddRef(This)
  202.  
  203. #define IADsSecurity_Release(This)    \
  204.     (This)->lpVtbl -> Release(This)
  205.  
  206.  
  207. #define IADsSecurity_GetTypeInfoCount(This,pctinfo)    \
  208.     (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  209.  
  210. #define IADsSecurity_GetTypeInfo(This,iTInfo,lcid,ppTInfo)    \
  211.     (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  212.  
  213. #define IADsSecurity_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)    \
  214.     (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  215.  
  216. #define IADsSecurity_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)    \
  217.     (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  218.  
  219.  
  220. #define IADsSecurity_GetSecurityDescriptor(This,varPath,pVariant)    \
  221.     (This)->lpVtbl -> GetSecurityDescriptor(This,varPath,pVariant)
  222.  
  223. #define IADsSecurity_SetSecurityDescriptor(This,varData,varPath)    \
  224.     (This)->lpVtbl -> SetSecurityDescriptor(This,varData,varPath)
  225.  
  226. #define IADsSecurity_GetSID(This,varPath,pRet)    \
  227.     (This)->lpVtbl -> GetSID(This,varPath,pRet)
  228.  
  229. #define IADsSecurity_GetSecurityDescriptorAs(This,lFormat,varPath,pRet)    \
  230.     (This)->lpVtbl -> GetSecurityDescriptorAs(This,lFormat,varPath,pRet)
  231.  
  232. #endif /* COBJMACROS */
  233.  
  234.  
  235. #endif     /* C style interface */
  236.  
  237.  
  238.  
  239. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IADsSecurity_GetSecurityDescriptor_Proxy( 
  240.     IADsSecurity __RPC_FAR * This,
  241.     /* [optional][in] */ VARIANT varPath,
  242.     /* [retval][out] */ VARIANT __RPC_FAR *pVariant);
  243.  
  244.  
  245. void __RPC_STUB IADsSecurity_GetSecurityDescriptor_Stub(
  246.     IRpcStubBuffer *This,
  247.     IRpcChannelBuffer *_pRpcChannelBuffer,
  248.     PRPC_MESSAGE _pRpcMessage,
  249.     DWORD *_pdwStubPhase);
  250.  
  251.  
  252. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IADsSecurity_SetSecurityDescriptor_Proxy( 
  253.     IADsSecurity __RPC_FAR * This,
  254.     /* [in] */ VARIANT varData,
  255.     /* [optional][in] */ VARIANT varPath);
  256.  
  257.  
  258. void __RPC_STUB IADsSecurity_SetSecurityDescriptor_Stub(
  259.     IRpcStubBuffer *This,
  260.     IRpcChannelBuffer *_pRpcChannelBuffer,
  261.     PRPC_MESSAGE _pRpcMessage,
  262.     DWORD *_pdwStubPhase);
  263.  
  264.  
  265. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IADsSecurity_GetSID_Proxy( 
  266.     IADsSecurity __RPC_FAR * This,
  267.     /* [in] */ VARIANT varPath,
  268.     /* [retval][out] */ VARIANT __RPC_FAR *pRet);
  269.  
  270.  
  271. void __RPC_STUB IADsSecurity_GetSID_Stub(
  272.     IRpcStubBuffer *This,
  273.     IRpcChannelBuffer *_pRpcChannelBuffer,
  274.     PRPC_MESSAGE _pRpcMessage,
  275.     DWORD *_pdwStubPhase);
  276.  
  277.  
  278. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IADsSecurity_GetSecurityDescriptorAs_Proxy( 
  279.     IADsSecurity __RPC_FAR * This,
  280.     /* [in] */ long lFormat,
  281.     /* [optional][in] */ VARIANT varPath,
  282.     /* [retval][out] */ VARIANT __RPC_FAR *pRet);
  283.  
  284.  
  285. void __RPC_STUB IADsSecurity_GetSecurityDescriptorAs_Stub(
  286.     IRpcStubBuffer *This,
  287.     IRpcChannelBuffer *_pRpcChannelBuffer,
  288.     PRPC_MESSAGE _pRpcMessage,
  289.     DWORD *_pdwStubPhase);
  290.  
  291.  
  292.  
  293. #endif     /* __IADsSecurity_INTERFACE_DEFINED__ */
  294.  
  295.  
  296. #ifndef __IADsSID_INTERFACE_DEFINED__
  297. #define __IADsSID_INTERFACE_DEFINED__
  298.  
  299. /* interface IADsSID */
  300. /* [unique][helpstring][dual][uuid][object] */ 
  301.  
  302.  
  303. EXTERN_C const IID IID_IADsSID;
  304.  
  305. #if defined(__cplusplus) && !defined(CINTERFACE)
  306.     
  307.     MIDL_INTERFACE("212029AE-C50D-11D2-BC7E-00C04FD430AF")
  308.     IADsSID : public IDispatch
  309.     {
  310.     public:
  311.         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetAs( 
  312.             /* [in] */ long lFormat,
  313.             /* [retval][out] */ VARIANT __RPC_FAR *pVar) = 0;
  314.         
  315.         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetAs( 
  316.             /* [in] */ long lFormat,
  317.             /* [in] */ VARIANT varData) = 0;
  318.         
  319.     };
  320.     
  321. #else     /* C style interface */
  322.  
  323.     typedef struct IADsSIDVtbl
  324.     {
  325.         BEGIN_INTERFACE
  326.         
  327.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
  328.             IADsSID __RPC_FAR * This,
  329.             /* [in] */ REFIID riid,
  330.             /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  331.         
  332.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
  333.             IADsSID __RPC_FAR * This);
  334.         
  335.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
  336.             IADsSID __RPC_FAR * This);
  337.         
  338.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfoCount )( 
  339.             IADsSID __RPC_FAR * This,
  340.             /* [out] */ UINT __RPC_FAR *pctinfo);
  341.         
  342.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfo )( 
  343.             IADsSID __RPC_FAR * This,
  344.             /* [in] */ UINT iTInfo,
  345.             /* [in] */ LCID lcid,
  346.             /* [out] */ ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo);
  347.         
  348.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetIDsOfNames )( 
  349.             IADsSID __RPC_FAR * This,
  350.             /* [in] */ REFIID riid,
  351.             /* [size_is][in] */ LPOLESTR __RPC_FAR *rgszNames,
  352.             /* [in] */ UINT cNames,
  353.             /* [in] */ LCID lcid,
  354.             /* [size_is][out] */ DISPID __RPC_FAR *rgDispId);
  355.         
  356.         /* [local] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Invoke )( 
  357.             IADsSID __RPC_FAR * This,
  358.             /* [in] */ DISPID dispIdMember,
  359.             /* [in] */ REFIID riid,
  360.             /* [in] */ LCID lcid,
  361.             /* [in] */ WORD wFlags,
  362.             /* [out][in] */ DISPPARAMS __RPC_FAR *pDispParams,
  363.             /* [out] */ VARIANT __RPC_FAR *pVarResult,
  364.             /* [out] */ EXCEPINFO __RPC_FAR *pExcepInfo,
  365.             /* [out] */ UINT __RPC_FAR *puArgErr);
  366.         
  367.         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAs )( 
  368.             IADsSID __RPC_FAR * This,
  369.             /* [in] */ long lFormat,
  370.             /* [retval][out] */ VARIANT __RPC_FAR *pVar);
  371.         
  372.         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetAs )( 
  373.             IADsSID __RPC_FAR * This,
  374.             /* [in] */ long lFormat,
  375.             /* [in] */ VARIANT varData);
  376.         
  377.         END_INTERFACE
  378.     } IADsSIDVtbl;
  379.  
  380.     interface IADsSID
  381.     {
  382.         CONST_VTBL struct IADsSIDVtbl __RPC_FAR *lpVtbl;
  383.     };
  384.  
  385.     
  386.  
  387. #ifdef COBJMACROS
  388.  
  389.  
  390. #define IADsSID_QueryInterface(This,riid,ppvObject)    \
  391.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  392.  
  393. #define IADsSID_AddRef(This)    \
  394.     (This)->lpVtbl -> AddRef(This)
  395.  
  396. #define IADsSID_Release(This)    \
  397.     (This)->lpVtbl -> Release(This)
  398.  
  399.  
  400. #define IADsSID_GetTypeInfoCount(This,pctinfo)    \
  401.     (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  402.  
  403. #define IADsSID_GetTypeInfo(This,iTInfo,lcid,ppTInfo)    \
  404.     (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  405.  
  406. #define IADsSID_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)    \
  407.     (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  408.  
  409. #define IADsSID_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)    \
  410.     (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  411.  
  412.  
  413. #define IADsSID_GetAs(This,lFormat,pVar)    \
  414.     (This)->lpVtbl -> GetAs(This,lFormat,pVar)
  415.  
  416. #define IADsSID_SetAs(This,lFormat,varData)    \
  417.     (This)->lpVtbl -> SetAs(This,lFormat,varData)
  418.  
  419. #endif /* COBJMACROS */
  420.  
  421.  
  422. #endif     /* C style interface */
  423.  
  424.  
  425.  
  426. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IADsSID_GetAs_Proxy( 
  427.     IADsSID __RPC_FAR * This,
  428.     /* [in] */ long lFormat,
  429.     /* [retval][out] */ VARIANT __RPC_FAR *pVar);
  430.  
  431.  
  432. void __RPC_STUB IADsSID_GetAs_Stub(
  433.     IRpcStubBuffer *This,
  434.     IRpcChannelBuffer *_pRpcChannelBuffer,
  435.     PRPC_MESSAGE _pRpcMessage,
  436.     DWORD *_pdwStubPhase);
  437.  
  438.  
  439. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IADsSID_SetAs_Proxy( 
  440.     IADsSID __RPC_FAR * This,
  441.     /* [in] */ long lFormat,
  442.     /* [in] */ VARIANT varData);
  443.  
  444.  
  445. void __RPC_STUB IADsSID_SetAs_Stub(
  446.     IRpcStubBuffer *This,
  447.     IRpcChannelBuffer *_pRpcChannelBuffer,
  448.     PRPC_MESSAGE _pRpcMessage,
  449.     DWORD *_pdwStubPhase);
  450.  
  451.  
  452.  
  453. #endif     /* __IADsSID_INTERFACE_DEFINED__ */
  454.  
  455.  
  456.  
  457. #ifndef __ADSSECURITYLib_LIBRARY_DEFINED__
  458. #define __ADSSECURITYLib_LIBRARY_DEFINED__
  459.  
  460. /* library ADSSECURITYLib */
  461. /* [helpstring][version][uuid] */ 
  462.  
  463.  
  464. enum ADS_SD_FORMAT
  465.     {    ADS_SD_RAW    = 0,
  466.     ADS_SD_HEXSTRING    = ADS_SD_RAW + 1,
  467.     ADS_SD_SDDL    = ADS_SD_HEXSTRING + 1,
  468.     ADS_SD_IID    = ADS_SD_SDDL + 1
  469.     };
  470.  
  471. enum ADS_SID_FORMAT
  472.     {    ADS_SID_RAW    = 0,
  473.     ADS_SID_HEXSTRING    = ADS_SID_RAW + 1,
  474.     ADS_SID_SAM    = ADS_SID_HEXSTRING + 1,
  475.     ADS_SID_UPN    = ADS_SID_SAM + 1,
  476.     ADS_SID_SDDL    = ADS_SID_UPN + 1,
  477.     ADS_SID_WINNT_PATH    = ADS_SID_SDDL + 1,
  478.     ADS_SID_ACTIVE_DIRECTORY_PATH    = ADS_SID_WINNT_PATH + 1,
  479.     ADS_SID_SID_BINDING    = ADS_SID_ACTIVE_DIRECTORY_PATH + 1
  480.     };
  481.  
  482. enum ADS_RIGHT_RGY_ENUM
  483.     {    ADS_RIGHT_RGY_KEY_READ    = 0x20019,
  484.     ADS_RIGHT_RGY_KEY_WRITE    = 0x20006,
  485.     ADS_RIGHT_RGY_KEY_EXECUTE    = 0x20019,
  486.     ADS_RIGHT_RGY_KEY_ALL_ACCESS    = 0xf003f,
  487.     ADS_RIGHT_RGY_KEY_QUERY_VALUE    = 0x1,
  488.     ADS_RIGHT_RGY_KEY_SET_VALUE    = 0x2,
  489.     ADS_RIGHT_RGY_CREATE_SUB_KEY    = 0x4,
  490.     ADS_RIGHT_RGY_ENUMERATE_SUB_KEYS    = 0x8,
  491.     ADS_RIGHT_RGY_NOTIFY    = 0x10,
  492.     ADS_RIGHT_RGY_CREATE_LINK    = 0x20
  493.     };
  494.  
  495. enum ADS_RIGHT_EXCH_ENUM
  496.     {    ADS_RIGHT_EXCH_ADD_CHILD    = 0x1L,
  497.     ADS_RIGHT_EXCH_MODIFY_USER_ATT    = 0x2L,
  498.     ADS_RIGHT_EXCH_MODIFY_ADMIN_ATT    = 0x4L,
  499.     ADS_RIGHT_EXCH_DELETE    = 0x10000L,
  500.     ADS_RIGHT_EXCH_MAIL_SEND_AS    = 0x8L,
  501.     ADS_RIGHT_EXCH_MAIL_RECEIVE_AS    = 0x10L,
  502.     ADS_RIGHT_EXCH_MAIL_ADMIN_AS    = 0x20L,
  503.     ADS_RIGHT_EXCH_DS_REPLICATION    = 0x40L,
  504.     ADS_RIGHT_EXCH_MODIFY_SEC_ATT    = 0x80L,
  505.     ADS_RIGHT_EXCH_DS_SEARCH    = 0x100L
  506.     };
  507.  
  508. EXTERN_C const IID LIBID_ADSSECURITYLib;
  509.  
  510. EXTERN_C const CLSID CLSID_ADsSecurity;
  511.  
  512. #ifdef __cplusplus
  513.  
  514. class DECLSPEC_UUID("212029AA-C50D-11D2-BC7E-00C04FD430AF")
  515. ADsSecurity;
  516. #endif
  517.  
  518. EXTERN_C const CLSID CLSID_ADsSID;
  519.  
  520. #ifdef __cplusplus
  521.  
  522. class DECLSPEC_UUID("212029AF-C50D-11D2-BC7E-00C04FD430AF")
  523. ADsSID;
  524. #endif
  525. #endif /* __ADSSECURITYLib_LIBRARY_DEFINED__ */
  526.  
  527. /* Additional Prototypes for ALL interfaces */
  528.  
  529. unsigned long             __RPC_USER  VARIANT_UserSize(     unsigned long __RPC_FAR *, unsigned long            , VARIANT __RPC_FAR * ); 
  530. unsigned char __RPC_FAR * __RPC_USER  VARIANT_UserMarshal(  unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, VARIANT __RPC_FAR * ); 
  531. unsigned char __RPC_FAR * __RPC_USER  VARIANT_UserUnmarshal(unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, VARIANT __RPC_FAR * ); 
  532. void                      __RPC_USER  VARIANT_UserFree(     unsigned long __RPC_FAR *, VARIANT __RPC_FAR * ); 
  533.  
  534. /* end of Additional Prototypes */
  535.  
  536. #ifdef __cplusplus
  537. }
  538. #endif
  539.  
  540. #endif
  541.