Iadmw.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:77k
源码类别:

模拟服务器

开发平台:

C/C++

  1. #pragma warning( disable: 4049 )  /* more than 64k source lines */
  2. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  3.  /* File created by MIDL compiler version 6.00.0347 */
  4. /* Compiler settings for iadmw.idl:
  5.     Oicf, W1, Zp8, env=Win32 (32b run)
  6.     protocol : dce , ms_ext, c_ext
  7.     error checks: allocation ref 
  8.     VC __declspec() decoration level: 
  9.          __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  10.          DECLSPEC_UUID(), MIDL_INTERFACE()
  11. */
  12. //@@MIDL_FILE_HEADING(  )
  13. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  14. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  15. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  16. #endif
  17. #include "rpc.h"
  18. #include "rpcndr.h"
  19. #ifndef __RPCNDR_H_VERSION__
  20. #error this stub requires an updated version of <rpcndr.h>
  21. #endif // __RPCNDR_H_VERSION__
  22. #ifndef COM_NO_WINDOWS_H
  23. #include "windows.h"
  24. #include "ole2.h"
  25. #endif /*COM_NO_WINDOWS_H*/
  26. #ifndef __iadmw_h__
  27. #define __iadmw_h__
  28. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  29. #pragma once
  30. #endif
  31. /* Forward Declarations */ 
  32. #ifndef __IMSAdminBaseW_FWD_DEFINED__
  33. #define __IMSAdminBaseW_FWD_DEFINED__
  34. typedef interface IMSAdminBaseW IMSAdminBaseW;
  35. #endif  /* __IMSAdminBaseW_FWD_DEFINED__ */
  36. #ifndef __IMSAdminBase2W_FWD_DEFINED__
  37. #define __IMSAdminBase2W_FWD_DEFINED__
  38. typedef interface IMSAdminBase2W IMSAdminBase2W;
  39. #endif  /* __IMSAdminBase2W_FWD_DEFINED__ */
  40. #ifndef __IMSAdminBaseSinkW_FWD_DEFINED__
  41. #define __IMSAdminBaseSinkW_FWD_DEFINED__
  42. typedef interface IMSAdminBaseSinkW IMSAdminBaseSinkW;
  43. #endif  /* __IMSAdminBaseSinkW_FWD_DEFINED__ */
  44. #ifndef __AsyncIMSAdminBaseSinkW_FWD_DEFINED__
  45. #define __AsyncIMSAdminBaseSinkW_FWD_DEFINED__
  46. typedef interface AsyncIMSAdminBaseSinkW AsyncIMSAdminBaseSinkW;
  47. #endif  /* __AsyncIMSAdminBaseSinkW_FWD_DEFINED__ */
  48. /* header files for imported files */
  49. #include "mddefw.h"
  50. #include "objidl.h"
  51. #include "ocidl.h"
  52. #ifdef __cplusplus
  53. extern "C"{
  54. #endif 
  55. void * __RPC_USER MIDL_user_allocate(size_t);
  56. void __RPC_USER MIDL_user_free( void * ); 
  57. /* interface __MIDL_itf_iadmw_0000 */
  58. /* [local] */ 
  59. /*++
  60.                                                                                 
  61. Copyright (c) 1997-1999 Microsoft Corporation
  62.                                                                                 
  63. Module Name: iadmw.h
  64.                                                                                 
  65.     Admin Objects Interfaces
  66.                                                                                 
  67. --*/
  68. #ifndef _ADM_IADMW_
  69. #define _ADM_IADMW_
  70. #include <mdcommsg.h>
  71. #include <mdmsg.h>
  72. /*                                                                              
  73.     Error Codes                                                                 
  74.                                                                                 
  75.         Admin api's all return HRESULTS. Since internal results are either   
  76.         winerrors or Metadata specific return codes (see mdmsg.h), they are     
  77.         converted to HRESULTS using the RETURNCODETOHRESULT macro (see          
  78.         commsg.h).                                                              
  79. */                                                                              
  80.                                                                                 
  81. /*                                                                              
  82.     Max Name Length                                                             
  83.         The maximum number of characters in the length of a metaobject name,    
  84.         including the terminating NULL. This refers to each node in the tree,   
  85.         not the entire path.                                                    
  86.         eg. strlen("Root") < ADMINDATA_MAX_NAME_LEN                           
  87. */                                                                              
  88. #define ADMINDATA_MAX_NAME_LEN           256
  89.                                                                                 
  90. #define CLSID_MSAdminBase       CLSID_MSAdminBase_W                             
  91. #define IID_IMSAdminBase        IID_IMSAdminBase_W                              
  92. #define IMSAdminBase            IMSAdminBaseW                                   
  93. #define IID_IMSAdminBase2       IID_IMSAdminBase2_W                             
  94. #define IMSAdminBase2           IMSAdminBase2W                                  
  95. #define IMSAdminBaseSink        IMSAdminBaseSinkW                               
  96. #define IID_IMSAdminBaseSink    IID_IMSAdminBaseSink_W                          
  97. #define GETAdminBaseCLSID       GETAdminBaseCLSIDW                              
  98.                                                                                 
  99. #define AsyncIMSAdminBaseSink        AsyncIMSAdminBaseSinkW                               
  100. #define IID_AsyncIMSAdminBaseSink    IID_AsyncIMSAdminBaseSink_W                          
  101. DEFINE_GUID(CLSID_MSAdminBase_W, 0xa9e69610, 0xb80d, 0x11d0, 0xb9, 0xb9, 0x0, 0xa0, 0xc9, 0x22, 0xe7, 0x50);
  102. DEFINE_GUID(IID_IMSAdminBase_W, 0x70b51430, 0xb6ca, 0x11d0, 0xb9, 0xb9, 0x0, 0xa0, 0xc9, 0x22, 0xe7, 0x50);
  103. DEFINE_GUID(IID_IMSAdminBase2_W, 0x8298d101, 0xf992, 0x43b7, 0x8e, 0xca, 0x50, 0x52, 0xd8, 0x85, 0xb9, 0x95);
  104. DEFINE_GUID(IID_IMSAdminBaseSink_W, 0xa9e69612, 0xb80d, 0x11d0, 0xb9, 0xb9, 0x0, 0xa0, 0xc9, 0x22, 0xe7, 0x50);
  105. DEFINE_GUID(IID_AsyncIMSAdminBaseSink_W, 0xa9e69613, 0xb80d, 0x11d0, 0xb9, 0xb9, 0x0, 0xa0, 0xc9, 0x22, 0xe7, 0x50);
  106. #define GETAdminBaseCLSIDW(IsService) CLSID_MSAdminBase_W
  107. /*                                                                              
  108. The Main Interface, UNICODE                                                     
  109. */                                                                              
  110. extern RPC_IF_HANDLE __MIDL_itf_iadmw_0000_v0_0_c_ifspec;
  111. extern RPC_IF_HANDLE __MIDL_itf_iadmw_0000_v0_0_s_ifspec;
  112. #ifndef __IMSAdminBaseW_INTERFACE_DEFINED__
  113. #define __IMSAdminBaseW_INTERFACE_DEFINED__
  114. /* interface IMSAdminBaseW */
  115. /* [unique][uuid][object] */ 
  116. EXTERN_C const IID IID_IMSAdminBaseW;
  117. #if defined(__cplusplus) && !defined(CINTERFACE)
  118.     
  119.     MIDL_INTERFACE("70B51430-B6CA-11d0-B9B9-00A0C922E750")
  120.     IMSAdminBaseW : public IUnknown
  121.     {
  122.     public:
  123.         virtual HRESULT STDMETHODCALLTYPE AddKey( 
  124.             /* [in] */ METADATA_HANDLE hMDHandle,
  125.             /* [string][in][unique] */ LPCWSTR pszMDPath) = 0;
  126.         
  127.         virtual HRESULT STDMETHODCALLTYPE DeleteKey( 
  128.             /* [in] */ METADATA_HANDLE hMDHandle,
  129.             /* [string][in][unique] */ LPCWSTR pszMDPath) = 0;
  130.         
  131.         virtual HRESULT STDMETHODCALLTYPE DeleteChildKeys( 
  132.             /* [in] */ METADATA_HANDLE hMDHandle,
  133.             /* [string][in][unique] */ LPCWSTR pszMDPath) = 0;
  134.         
  135.         virtual HRESULT STDMETHODCALLTYPE EnumKeys( 
  136.             /* [in] */ METADATA_HANDLE hMDHandle,
  137.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  138.             /* [size_is][out] */ LPWSTR pszMDName,
  139.             /* [in] */ DWORD dwMDEnumObjectIndex) = 0;
  140.         
  141.         virtual HRESULT STDMETHODCALLTYPE CopyKey( 
  142.             /* [in] */ METADATA_HANDLE hMDSourceHandle,
  143.             /* [string][in][unique] */ LPCWSTR pszMDSourcePath,
  144.             /* [in] */ METADATA_HANDLE hMDDestHandle,
  145.             /* [string][in][unique] */ LPCWSTR pszMDDestPath,
  146.             /* [in] */ BOOL bMDOverwriteFlag,
  147.             /* [in] */ BOOL bMDCopyFlag) = 0;
  148.         
  149.         virtual HRESULT STDMETHODCALLTYPE RenameKey( 
  150.             /* [in] */ METADATA_HANDLE hMDHandle,
  151.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  152.             /* [string][in][unique] */ LPCWSTR pszMDNewName) = 0;
  153.         
  154.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetData( 
  155.             /* [in] */ METADATA_HANDLE hMDHandle,
  156.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  157.             /* [in] */ PMETADATA_RECORD pmdrMDData) = 0;
  158.         
  159.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetData( 
  160.             /* [in] */ METADATA_HANDLE hMDHandle,
  161.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  162.             /* [out][in] */ PMETADATA_RECORD pmdrMDData,
  163.             /* [out] */ DWORD *pdwMDRequiredDataLen) = 0;
  164.         
  165.         virtual HRESULT STDMETHODCALLTYPE DeleteData( 
  166.             /* [in] */ METADATA_HANDLE hMDHandle,
  167.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  168.             /* [in] */ DWORD dwMDIdentifier,
  169.             /* [in] */ DWORD dwMDDataType) = 0;
  170.         
  171.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE EnumData( 
  172.             /* [in] */ METADATA_HANDLE hMDHandle,
  173.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  174.             /* [out][in] */ PMETADATA_RECORD pmdrMDData,
  175.             /* [in] */ DWORD dwMDEnumDataIndex,
  176.             /* [out] */ DWORD *pdwMDRequiredDataLen) = 0;
  177.         
  178.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetAllData( 
  179.             /* [in] */ METADATA_HANDLE hMDHandle,
  180.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  181.             /* [in] */ DWORD dwMDAttributes,
  182.             /* [in] */ DWORD dwMDUserType,
  183.             /* [in] */ DWORD dwMDDataType,
  184.             /* [out] */ DWORD *pdwMDNumDataEntries,
  185.             /* [out] */ DWORD *pdwMDDataSetNumber,
  186.             /* [in] */ DWORD dwMDBufferSize,
  187.             /* [size_is][out] */ unsigned char *pbMDBuffer,
  188.             /* [out] */ DWORD *pdwMDRequiredBufferSize) = 0;
  189.         
  190.         virtual HRESULT STDMETHODCALLTYPE DeleteAllData( 
  191.             /* [in] */ METADATA_HANDLE hMDHandle,
  192.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  193.             /* [in] */ DWORD dwMDUserType,
  194.             /* [in] */ DWORD dwMDDataType) = 0;
  195.         
  196.         virtual HRESULT STDMETHODCALLTYPE CopyData( 
  197.             /* [in] */ METADATA_HANDLE hMDSourceHandle,
  198.             /* [string][in][unique] */ LPCWSTR pszMDSourcePath,
  199.             /* [in] */ METADATA_HANDLE hMDDestHandle,
  200.             /* [string][in][unique] */ LPCWSTR pszMDDestPath,
  201.             /* [in] */ DWORD dwMDAttributes,
  202.             /* [in] */ DWORD dwMDUserType,
  203.             /* [in] */ DWORD dwMDDataType,
  204.             /* [in] */ BOOL bMDCopyFlag) = 0;
  205.         
  206.         virtual HRESULT STDMETHODCALLTYPE GetDataPaths( 
  207.             /* [in] */ METADATA_HANDLE hMDHandle,
  208.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  209.             /* [in] */ DWORD dwMDIdentifier,
  210.             /* [in] */ DWORD dwMDDataType,
  211.             /* [in] */ DWORD dwMDBufferSize,
  212.             /* [size_is][out] */ WCHAR *pszBuffer,
  213.             /* [out] */ DWORD *pdwMDRequiredBufferSize) = 0;
  214.         
  215.         virtual HRESULT STDMETHODCALLTYPE OpenKey( 
  216.             /* [in] */ METADATA_HANDLE hMDHandle,
  217.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  218.             /* [in] */ DWORD dwMDAccessRequested,
  219.             /* [in] */ DWORD dwMDTimeOut,
  220.             /* [out] */ PMETADATA_HANDLE phMDNewHandle) = 0;
  221.         
  222.         virtual HRESULT STDMETHODCALLTYPE CloseKey( 
  223.             /* [in] */ METADATA_HANDLE hMDHandle) = 0;
  224.         
  225.         virtual HRESULT STDMETHODCALLTYPE ChangePermissions( 
  226.             /* [in] */ METADATA_HANDLE hMDHandle,
  227.             /* [in] */ DWORD dwMDTimeOut,
  228.             /* [in] */ DWORD dwMDAccessRequested) = 0;
  229.         
  230.         virtual HRESULT STDMETHODCALLTYPE SaveData( void) = 0;
  231.         
  232.         virtual HRESULT STDMETHODCALLTYPE GetHandleInfo( 
  233.             /* [in] */ METADATA_HANDLE hMDHandle,
  234.             /* [out] */ PMETADATA_HANDLE_INFO pmdhiInfo) = 0;
  235.         
  236.         virtual HRESULT STDMETHODCALLTYPE GetSystemChangeNumber( 
  237.             /* [out] */ DWORD *pdwSystemChangeNumber) = 0;
  238.         
  239.         virtual HRESULT STDMETHODCALLTYPE GetDataSetNumber( 
  240.             /* [in] */ METADATA_HANDLE hMDHandle,
  241.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  242.             /* [out] */ DWORD *pdwMDDataSetNumber) = 0;
  243.         
  244.         virtual HRESULT STDMETHODCALLTYPE SetLastChangeTime( 
  245.             /* [in] */ METADATA_HANDLE hMDHandle,
  246.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  247.             /* [in] */ PFILETIME pftMDLastChangeTime,
  248.             /* [in] */ BOOL bLocalTime) = 0;
  249.         
  250.         virtual HRESULT STDMETHODCALLTYPE GetLastChangeTime( 
  251.             /* [in] */ METADATA_HANDLE hMDHandle,
  252.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  253.             /* [out] */ PFILETIME pftMDLastChangeTime,
  254.             /* [in] */ BOOL bLocalTime) = 0;
  255.         
  256.         virtual /* [restricted][local] */ HRESULT STDMETHODCALLTYPE KeyExchangePhase1( void) = 0;
  257.         
  258.         virtual /* [restricted][local] */ HRESULT STDMETHODCALLTYPE KeyExchangePhase2( void) = 0;
  259.         
  260.         virtual HRESULT STDMETHODCALLTYPE Backup( 
  261.             /* [string][in][unique] */ LPCWSTR pszMDBackupLocation,
  262.             /* [in] */ DWORD dwMDVersion,
  263.             /* [in] */ DWORD dwMDFlags) = 0;
  264.         
  265.         virtual HRESULT STDMETHODCALLTYPE Restore( 
  266.             /* [string][in][unique] */ LPCWSTR pszMDBackupLocation,
  267.             /* [in] */ DWORD dwMDVersion,
  268.             /* [in] */ DWORD dwMDFlags) = 0;
  269.         
  270.         virtual HRESULT STDMETHODCALLTYPE EnumBackups( 
  271.             /* [size_is][out][in] */ LPWSTR pszMDBackupLocation,
  272.             /* [out] */ DWORD *pdwMDVersion,
  273.             /* [out] */ PFILETIME pftMDBackupTime,
  274.             /* [in] */ DWORD dwMDEnumIndex) = 0;
  275.         
  276.         virtual HRESULT STDMETHODCALLTYPE DeleteBackup( 
  277.             /* [string][in][unique] */ LPCWSTR pszMDBackupLocation,
  278.             /* [in] */ DWORD dwMDVersion) = 0;
  279.         
  280.         virtual HRESULT STDMETHODCALLTYPE UnmarshalInterface( 
  281.             /* [out] */ IMSAdminBaseW **piadmbwInterface) = 0;
  282.         
  283.         virtual /* [restricted][local] */ HRESULT STDMETHODCALLTYPE GetServerGuid( void) = 0;
  284.         
  285.     };
  286.     
  287. #else  /* C style interface */
  288.     typedef struct IMSAdminBaseWVtbl
  289.     {
  290.         BEGIN_INTERFACE
  291.         
  292.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  293.             IMSAdminBaseW * This,
  294.             /* [in] */ REFIID riid,
  295.             /* [iid_is][out] */ void **ppvObject);
  296.         
  297.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  298.             IMSAdminBaseW * This);
  299.         
  300.         ULONG ( STDMETHODCALLTYPE *Release )( 
  301.             IMSAdminBaseW * This);
  302.         
  303.         HRESULT ( STDMETHODCALLTYPE *AddKey )( 
  304.             IMSAdminBaseW * This,
  305.             /* [in] */ METADATA_HANDLE hMDHandle,
  306.             /* [string][in][unique] */ LPCWSTR pszMDPath);
  307.         
  308.         HRESULT ( STDMETHODCALLTYPE *DeleteKey )( 
  309.             IMSAdminBaseW * This,
  310.             /* [in] */ METADATA_HANDLE hMDHandle,
  311.             /* [string][in][unique] */ LPCWSTR pszMDPath);
  312.         
  313.         HRESULT ( STDMETHODCALLTYPE *DeleteChildKeys )( 
  314.             IMSAdminBaseW * This,
  315.             /* [in] */ METADATA_HANDLE hMDHandle,
  316.             /* [string][in][unique] */ LPCWSTR pszMDPath);
  317.         
  318.         HRESULT ( STDMETHODCALLTYPE *EnumKeys )( 
  319.             IMSAdminBaseW * This,
  320.             /* [in] */ METADATA_HANDLE hMDHandle,
  321.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  322.             /* [size_is][out] */ LPWSTR pszMDName,
  323.             /* [in] */ DWORD dwMDEnumObjectIndex);
  324.         
  325.         HRESULT ( STDMETHODCALLTYPE *CopyKey )( 
  326.             IMSAdminBaseW * This,
  327.             /* [in] */ METADATA_HANDLE hMDSourceHandle,
  328.             /* [string][in][unique] */ LPCWSTR pszMDSourcePath,
  329.             /* [in] */ METADATA_HANDLE hMDDestHandle,
  330.             /* [string][in][unique] */ LPCWSTR pszMDDestPath,
  331.             /* [in] */ BOOL bMDOverwriteFlag,
  332.             /* [in] */ BOOL bMDCopyFlag);
  333.         
  334.         HRESULT ( STDMETHODCALLTYPE *RenameKey )( 
  335.             IMSAdminBaseW * This,
  336.             /* [in] */ METADATA_HANDLE hMDHandle,
  337.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  338.             /* [string][in][unique] */ LPCWSTR pszMDNewName);
  339.         
  340.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetData )( 
  341.             IMSAdminBaseW * This,
  342.             /* [in] */ METADATA_HANDLE hMDHandle,
  343.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  344.             /* [in] */ PMETADATA_RECORD pmdrMDData);
  345.         
  346.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetData )( 
  347.             IMSAdminBaseW * This,
  348.             /* [in] */ METADATA_HANDLE hMDHandle,
  349.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  350.             /* [out][in] */ PMETADATA_RECORD pmdrMDData,
  351.             /* [out] */ DWORD *pdwMDRequiredDataLen);
  352.         
  353.         HRESULT ( STDMETHODCALLTYPE *DeleteData )( 
  354.             IMSAdminBaseW * This,
  355.             /* [in] */ METADATA_HANDLE hMDHandle,
  356.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  357.             /* [in] */ DWORD dwMDIdentifier,
  358.             /* [in] */ DWORD dwMDDataType);
  359.         
  360.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *EnumData )( 
  361.             IMSAdminBaseW * This,
  362.             /* [in] */ METADATA_HANDLE hMDHandle,
  363.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  364.             /* [out][in] */ PMETADATA_RECORD pmdrMDData,
  365.             /* [in] */ DWORD dwMDEnumDataIndex,
  366.             /* [out] */ DWORD *pdwMDRequiredDataLen);
  367.         
  368.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetAllData )( 
  369.             IMSAdminBaseW * This,
  370.             /* [in] */ METADATA_HANDLE hMDHandle,
  371.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  372.             /* [in] */ DWORD dwMDAttributes,
  373.             /* [in] */ DWORD dwMDUserType,
  374.             /* [in] */ DWORD dwMDDataType,
  375.             /* [out] */ DWORD *pdwMDNumDataEntries,
  376.             /* [out] */ DWORD *pdwMDDataSetNumber,
  377.             /* [in] */ DWORD dwMDBufferSize,
  378.             /* [size_is][out] */ unsigned char *pbMDBuffer,
  379.             /* [out] */ DWORD *pdwMDRequiredBufferSize);
  380.         
  381.         HRESULT ( STDMETHODCALLTYPE *DeleteAllData )( 
  382.             IMSAdminBaseW * This,
  383.             /* [in] */ METADATA_HANDLE hMDHandle,
  384.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  385.             /* [in] */ DWORD dwMDUserType,
  386.             /* [in] */ DWORD dwMDDataType);
  387.         
  388.         HRESULT ( STDMETHODCALLTYPE *CopyData )( 
  389.             IMSAdminBaseW * This,
  390.             /* [in] */ METADATA_HANDLE hMDSourceHandle,
  391.             /* [string][in][unique] */ LPCWSTR pszMDSourcePath,
  392.             /* [in] */ METADATA_HANDLE hMDDestHandle,
  393.             /* [string][in][unique] */ LPCWSTR pszMDDestPath,
  394.             /* [in] */ DWORD dwMDAttributes,
  395.             /* [in] */ DWORD dwMDUserType,
  396.             /* [in] */ DWORD dwMDDataType,
  397.             /* [in] */ BOOL bMDCopyFlag);
  398.         
  399.         HRESULT ( STDMETHODCALLTYPE *GetDataPaths )( 
  400.             IMSAdminBaseW * This,
  401.             /* [in] */ METADATA_HANDLE hMDHandle,
  402.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  403.             /* [in] */ DWORD dwMDIdentifier,
  404.             /* [in] */ DWORD dwMDDataType,
  405.             /* [in] */ DWORD dwMDBufferSize,
  406.             /* [size_is][out] */ WCHAR *pszBuffer,
  407.             /* [out] */ DWORD *pdwMDRequiredBufferSize);
  408.         
  409.         HRESULT ( STDMETHODCALLTYPE *OpenKey )( 
  410.             IMSAdminBaseW * This,
  411.             /* [in] */ METADATA_HANDLE hMDHandle,
  412.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  413.             /* [in] */ DWORD dwMDAccessRequested,
  414.             /* [in] */ DWORD dwMDTimeOut,
  415.             /* [out] */ PMETADATA_HANDLE phMDNewHandle);
  416.         
  417.         HRESULT ( STDMETHODCALLTYPE *CloseKey )( 
  418.             IMSAdminBaseW * This,
  419.             /* [in] */ METADATA_HANDLE hMDHandle);
  420.         
  421.         HRESULT ( STDMETHODCALLTYPE *ChangePermissions )( 
  422.             IMSAdminBaseW * This,
  423.             /* [in] */ METADATA_HANDLE hMDHandle,
  424.             /* [in] */ DWORD dwMDTimeOut,
  425.             /* [in] */ DWORD dwMDAccessRequested);
  426.         
  427.         HRESULT ( STDMETHODCALLTYPE *SaveData )( 
  428.             IMSAdminBaseW * This);
  429.         
  430.         HRESULT ( STDMETHODCALLTYPE *GetHandleInfo )( 
  431.             IMSAdminBaseW * This,
  432.             /* [in] */ METADATA_HANDLE hMDHandle,
  433.             /* [out] */ PMETADATA_HANDLE_INFO pmdhiInfo);
  434.         
  435.         HRESULT ( STDMETHODCALLTYPE *GetSystemChangeNumber )( 
  436.             IMSAdminBaseW * This,
  437.             /* [out] */ DWORD *pdwSystemChangeNumber);
  438.         
  439.         HRESULT ( STDMETHODCALLTYPE *GetDataSetNumber )( 
  440.             IMSAdminBaseW * This,
  441.             /* [in] */ METADATA_HANDLE hMDHandle,
  442.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  443.             /* [out] */ DWORD *pdwMDDataSetNumber);
  444.         
  445.         HRESULT ( STDMETHODCALLTYPE *SetLastChangeTime )( 
  446.             IMSAdminBaseW * This,
  447.             /* [in] */ METADATA_HANDLE hMDHandle,
  448.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  449.             /* [in] */ PFILETIME pftMDLastChangeTime,
  450.             /* [in] */ BOOL bLocalTime);
  451.         
  452.         HRESULT ( STDMETHODCALLTYPE *GetLastChangeTime )( 
  453.             IMSAdminBaseW * This,
  454.             /* [in] */ METADATA_HANDLE hMDHandle,
  455.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  456.             /* [out] */ PFILETIME pftMDLastChangeTime,
  457.             /* [in] */ BOOL bLocalTime);
  458.         
  459.         /* [restricted][local] */ HRESULT ( STDMETHODCALLTYPE *KeyExchangePhase1 )( 
  460.             IMSAdminBaseW * This);
  461.         
  462.         /* [restricted][local] */ HRESULT ( STDMETHODCALLTYPE *KeyExchangePhase2 )( 
  463.             IMSAdminBaseW * This);
  464.         
  465.         HRESULT ( STDMETHODCALLTYPE *Backup )( 
  466.             IMSAdminBaseW * This,
  467.             /* [string][in][unique] */ LPCWSTR pszMDBackupLocation,
  468.             /* [in] */ DWORD dwMDVersion,
  469.             /* [in] */ DWORD dwMDFlags);
  470.         
  471.         HRESULT ( STDMETHODCALLTYPE *Restore )( 
  472.             IMSAdminBaseW * This,
  473.             /* [string][in][unique] */ LPCWSTR pszMDBackupLocation,
  474.             /* [in] */ DWORD dwMDVersion,
  475.             /* [in] */ DWORD dwMDFlags);
  476.         
  477.         HRESULT ( STDMETHODCALLTYPE *EnumBackups )( 
  478.             IMSAdminBaseW * This,
  479.             /* [size_is][out][in] */ LPWSTR pszMDBackupLocation,
  480.             /* [out] */ DWORD *pdwMDVersion,
  481.             /* [out] */ PFILETIME pftMDBackupTime,
  482.             /* [in] */ DWORD dwMDEnumIndex);
  483.         
  484.         HRESULT ( STDMETHODCALLTYPE *DeleteBackup )( 
  485.             IMSAdminBaseW * This,
  486.             /* [string][in][unique] */ LPCWSTR pszMDBackupLocation,
  487.             /* [in] */ DWORD dwMDVersion);
  488.         
  489.         HRESULT ( STDMETHODCALLTYPE *UnmarshalInterface )( 
  490.             IMSAdminBaseW * This,
  491.             /* [out] */ IMSAdminBaseW **piadmbwInterface);
  492.         
  493.         /* [restricted][local] */ HRESULT ( STDMETHODCALLTYPE *GetServerGuid )( 
  494.             IMSAdminBaseW * This);
  495.         
  496.         END_INTERFACE
  497.     } IMSAdminBaseWVtbl;
  498.     interface IMSAdminBaseW
  499.     {
  500.         CONST_VTBL struct IMSAdminBaseWVtbl *lpVtbl;
  501.     };
  502.     
  503. #ifdef COBJMACROS
  504. #define IMSAdminBaseW_QueryInterface(This,riid,ppvObject)
  505.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  506. #define IMSAdminBaseW_AddRef(This)
  507.     (This)->lpVtbl -> AddRef(This)
  508. #define IMSAdminBaseW_Release(This)
  509.     (This)->lpVtbl -> Release(This)
  510. #define IMSAdminBaseW_AddKey(This,hMDHandle,pszMDPath)
  511.     (This)->lpVtbl -> AddKey(This,hMDHandle,pszMDPath)
  512. #define IMSAdminBaseW_DeleteKey(This,hMDHandle,pszMDPath)
  513.     (This)->lpVtbl -> DeleteKey(This,hMDHandle,pszMDPath)
  514. #define IMSAdminBaseW_DeleteChildKeys(This,hMDHandle,pszMDPath)
  515.     (This)->lpVtbl -> DeleteChildKeys(This,hMDHandle,pszMDPath)
  516. #define IMSAdminBaseW_EnumKeys(This,hMDHandle,pszMDPath,pszMDName,dwMDEnumObjectIndex)
  517.     (This)->lpVtbl -> EnumKeys(This,hMDHandle,pszMDPath,pszMDName,dwMDEnumObjectIndex)
  518. #define IMSAdminBaseW_CopyKey(This,hMDSourceHandle,pszMDSourcePath,hMDDestHandle,pszMDDestPath,bMDOverwriteFlag,bMDCopyFlag)
  519.     (This)->lpVtbl -> CopyKey(This,hMDSourceHandle,pszMDSourcePath,hMDDestHandle,pszMDDestPath,bMDOverwriteFlag,bMDCopyFlag)
  520. #define IMSAdminBaseW_RenameKey(This,hMDHandle,pszMDPath,pszMDNewName)
  521.     (This)->lpVtbl -> RenameKey(This,hMDHandle,pszMDPath,pszMDNewName)
  522. #define IMSAdminBaseW_SetData(This,hMDHandle,pszMDPath,pmdrMDData)
  523.     (This)->lpVtbl -> SetData(This,hMDHandle,pszMDPath,pmdrMDData)
  524. #define IMSAdminBaseW_GetData(This,hMDHandle,pszMDPath,pmdrMDData,pdwMDRequiredDataLen)
  525.     (This)->lpVtbl -> GetData(This,hMDHandle,pszMDPath,pmdrMDData,pdwMDRequiredDataLen)
  526. #define IMSAdminBaseW_DeleteData(This,hMDHandle,pszMDPath,dwMDIdentifier,dwMDDataType)
  527.     (This)->lpVtbl -> DeleteData(This,hMDHandle,pszMDPath,dwMDIdentifier,dwMDDataType)
  528. #define IMSAdminBaseW_EnumData(This,hMDHandle,pszMDPath,pmdrMDData,dwMDEnumDataIndex,pdwMDRequiredDataLen)
  529.     (This)->lpVtbl -> EnumData(This,hMDHandle,pszMDPath,pmdrMDData,dwMDEnumDataIndex,pdwMDRequiredDataLen)
  530. #define IMSAdminBaseW_GetAllData(This,hMDHandle,pszMDPath,dwMDAttributes,dwMDUserType,dwMDDataType,pdwMDNumDataEntries,pdwMDDataSetNumber,dwMDBufferSize,pbMDBuffer,pdwMDRequiredBufferSize)
  531.     (This)->lpVtbl -> GetAllData(This,hMDHandle,pszMDPath,dwMDAttributes,dwMDUserType,dwMDDataType,pdwMDNumDataEntries,pdwMDDataSetNumber,dwMDBufferSize,pbMDBuffer,pdwMDRequiredBufferSize)
  532. #define IMSAdminBaseW_DeleteAllData(This,hMDHandle,pszMDPath,dwMDUserType,dwMDDataType)
  533.     (This)->lpVtbl -> DeleteAllData(This,hMDHandle,pszMDPath,dwMDUserType,dwMDDataType)
  534. #define IMSAdminBaseW_CopyData(This,hMDSourceHandle,pszMDSourcePath,hMDDestHandle,pszMDDestPath,dwMDAttributes,dwMDUserType,dwMDDataType,bMDCopyFlag)
  535.     (This)->lpVtbl -> CopyData(This,hMDSourceHandle,pszMDSourcePath,hMDDestHandle,pszMDDestPath,dwMDAttributes,dwMDUserType,dwMDDataType,bMDCopyFlag)
  536. #define IMSAdminBaseW_GetDataPaths(This,hMDHandle,pszMDPath,dwMDIdentifier,dwMDDataType,dwMDBufferSize,pszBuffer,pdwMDRequiredBufferSize)
  537.     (This)->lpVtbl -> GetDataPaths(This,hMDHandle,pszMDPath,dwMDIdentifier,dwMDDataType,dwMDBufferSize,pszBuffer,pdwMDRequiredBufferSize)
  538. #define IMSAdminBaseW_OpenKey(This,hMDHandle,pszMDPath,dwMDAccessRequested,dwMDTimeOut,phMDNewHandle)
  539.     (This)->lpVtbl -> OpenKey(This,hMDHandle,pszMDPath,dwMDAccessRequested,dwMDTimeOut,phMDNewHandle)
  540. #define IMSAdminBaseW_CloseKey(This,hMDHandle)
  541.     (This)->lpVtbl -> CloseKey(This,hMDHandle)
  542. #define IMSAdminBaseW_ChangePermissions(This,hMDHandle,dwMDTimeOut,dwMDAccessRequested)
  543.     (This)->lpVtbl -> ChangePermissions(This,hMDHandle,dwMDTimeOut,dwMDAccessRequested)
  544. #define IMSAdminBaseW_SaveData(This)
  545.     (This)->lpVtbl -> SaveData(This)
  546. #define IMSAdminBaseW_GetHandleInfo(This,hMDHandle,pmdhiInfo)
  547.     (This)->lpVtbl -> GetHandleInfo(This,hMDHandle,pmdhiInfo)
  548. #define IMSAdminBaseW_GetSystemChangeNumber(This,pdwSystemChangeNumber)
  549.     (This)->lpVtbl -> GetSystemChangeNumber(This,pdwSystemChangeNumber)
  550. #define IMSAdminBaseW_GetDataSetNumber(This,hMDHandle,pszMDPath,pdwMDDataSetNumber)
  551.     (This)->lpVtbl -> GetDataSetNumber(This,hMDHandle,pszMDPath,pdwMDDataSetNumber)
  552. #define IMSAdminBaseW_SetLastChangeTime(This,hMDHandle,pszMDPath,pftMDLastChangeTime,bLocalTime)
  553.     (This)->lpVtbl -> SetLastChangeTime(This,hMDHandle,pszMDPath,pftMDLastChangeTime,bLocalTime)
  554. #define IMSAdminBaseW_GetLastChangeTime(This,hMDHandle,pszMDPath,pftMDLastChangeTime,bLocalTime)
  555.     (This)->lpVtbl -> GetLastChangeTime(This,hMDHandle,pszMDPath,pftMDLastChangeTime,bLocalTime)
  556. #define IMSAdminBaseW_KeyExchangePhase1(This)
  557.     (This)->lpVtbl -> KeyExchangePhase1(This)
  558. #define IMSAdminBaseW_KeyExchangePhase2(This)
  559.     (This)->lpVtbl -> KeyExchangePhase2(This)
  560. #define IMSAdminBaseW_Backup(This,pszMDBackupLocation,dwMDVersion,dwMDFlags)
  561.     (This)->lpVtbl -> Backup(This,pszMDBackupLocation,dwMDVersion,dwMDFlags)
  562. #define IMSAdminBaseW_Restore(This,pszMDBackupLocation,dwMDVersion,dwMDFlags)
  563.     (This)->lpVtbl -> Restore(This,pszMDBackupLocation,dwMDVersion,dwMDFlags)
  564. #define IMSAdminBaseW_EnumBackups(This,pszMDBackupLocation,pdwMDVersion,pftMDBackupTime,dwMDEnumIndex)
  565.     (This)->lpVtbl -> EnumBackups(This,pszMDBackupLocation,pdwMDVersion,pftMDBackupTime,dwMDEnumIndex)
  566. #define IMSAdminBaseW_DeleteBackup(This,pszMDBackupLocation,dwMDVersion)
  567.     (This)->lpVtbl -> DeleteBackup(This,pszMDBackupLocation,dwMDVersion)
  568. #define IMSAdminBaseW_UnmarshalInterface(This,piadmbwInterface)
  569.     (This)->lpVtbl -> UnmarshalInterface(This,piadmbwInterface)
  570. #define IMSAdminBaseW_GetServerGuid(This)
  571.     (This)->lpVtbl -> GetServerGuid(This)
  572. #endif /* COBJMACROS */
  573. #endif  /* C style interface */
  574. HRESULT STDMETHODCALLTYPE IMSAdminBaseW_AddKey_Proxy( 
  575.     IMSAdminBaseW * This,
  576.     /* [in] */ METADATA_HANDLE hMDHandle,
  577.     /* [string][in][unique] */ LPCWSTR pszMDPath);
  578. void __RPC_STUB IMSAdminBaseW_AddKey_Stub(
  579.     IRpcStubBuffer *This,
  580.     IRpcChannelBuffer *_pRpcChannelBuffer,
  581.     PRPC_MESSAGE _pRpcMessage,
  582.     DWORD *_pdwStubPhase);
  583. HRESULT STDMETHODCALLTYPE IMSAdminBaseW_DeleteKey_Proxy( 
  584.     IMSAdminBaseW * This,
  585.     /* [in] */ METADATA_HANDLE hMDHandle,
  586.     /* [string][in][unique] */ LPCWSTR pszMDPath);
  587. void __RPC_STUB IMSAdminBaseW_DeleteKey_Stub(
  588.     IRpcStubBuffer *This,
  589.     IRpcChannelBuffer *_pRpcChannelBuffer,
  590.     PRPC_MESSAGE _pRpcMessage,
  591.     DWORD *_pdwStubPhase);
  592. HRESULT STDMETHODCALLTYPE IMSAdminBaseW_DeleteChildKeys_Proxy( 
  593.     IMSAdminBaseW * This,
  594.     /* [in] */ METADATA_HANDLE hMDHandle,
  595.     /* [string][in][unique] */ LPCWSTR pszMDPath);
  596. void __RPC_STUB IMSAdminBaseW_DeleteChildKeys_Stub(
  597.     IRpcStubBuffer *This,
  598.     IRpcChannelBuffer *_pRpcChannelBuffer,
  599.     PRPC_MESSAGE _pRpcMessage,
  600.     DWORD *_pdwStubPhase);
  601. HRESULT STDMETHODCALLTYPE IMSAdminBaseW_EnumKeys_Proxy( 
  602.     IMSAdminBaseW * This,
  603.     /* [in] */ METADATA_HANDLE hMDHandle,
  604.     /* [string][in][unique] */ LPCWSTR pszMDPath,
  605.     /* [size_is][out] */ LPWSTR pszMDName,
  606.     /* [in] */ DWORD dwMDEnumObjectIndex);
  607. void __RPC_STUB IMSAdminBaseW_EnumKeys_Stub(
  608.     IRpcStubBuffer *This,
  609.     IRpcChannelBuffer *_pRpcChannelBuffer,
  610.     PRPC_MESSAGE _pRpcMessage,
  611.     DWORD *_pdwStubPhase);
  612. HRESULT STDMETHODCALLTYPE IMSAdminBaseW_CopyKey_Proxy( 
  613.     IMSAdminBaseW * This,
  614.     /* [in] */ METADATA_HANDLE hMDSourceHandle,
  615.     /* [string][in][unique] */ LPCWSTR pszMDSourcePath,
  616.     /* [in] */ METADATA_HANDLE hMDDestHandle,
  617.     /* [string][in][unique] */ LPCWSTR pszMDDestPath,
  618.     /* [in] */ BOOL bMDOverwriteFlag,
  619.     /* [in] */ BOOL bMDCopyFlag);
  620. void __RPC_STUB IMSAdminBaseW_CopyKey_Stub(
  621.     IRpcStubBuffer *This,
  622.     IRpcChannelBuffer *_pRpcChannelBuffer,
  623.     PRPC_MESSAGE _pRpcMessage,
  624.     DWORD *_pdwStubPhase);
  625. HRESULT STDMETHODCALLTYPE IMSAdminBaseW_RenameKey_Proxy( 
  626.     IMSAdminBaseW * This,
  627.     /* [in] */ METADATA_HANDLE hMDHandle,
  628.     /* [string][in][unique] */ LPCWSTR pszMDPath,
  629.     /* [string][in][unique] */ LPCWSTR pszMDNewName);
  630. void __RPC_STUB IMSAdminBaseW_RenameKey_Stub(
  631.     IRpcStubBuffer *This,
  632.     IRpcChannelBuffer *_pRpcChannelBuffer,
  633.     PRPC_MESSAGE _pRpcMessage,
  634.     DWORD *_pdwStubPhase);
  635. /* [call_as] */ HRESULT STDMETHODCALLTYPE IMSAdminBaseW_R_SetData_Proxy( 
  636.     IMSAdminBaseW * This,
  637.     /* [in] */ METADATA_HANDLE hMDHandle,
  638.     /* [string][in][unique] */ LPCWSTR pszMDPath,
  639.     /* [in] */ PMETADATA_RECORD pmdrMDData);
  640. void __RPC_STUB IMSAdminBaseW_R_SetData_Stub(
  641.     IRpcStubBuffer *This,
  642.     IRpcChannelBuffer *_pRpcChannelBuffer,
  643.     PRPC_MESSAGE _pRpcMessage,
  644.     DWORD *_pdwStubPhase);
  645. /* [call_as] */ HRESULT STDMETHODCALLTYPE IMSAdminBaseW_R_GetData_Proxy( 
  646.     IMSAdminBaseW * This,
  647.     /* [in] */ METADATA_HANDLE hMDHandle,
  648.     /* [string][in][unique] */ LPCWSTR pszMDPath,
  649.     /* [out][in] */ PMETADATA_RECORD pmdrMDData,
  650.     /* [out] */ DWORD *pdwMDRequiredDataLen,
  651.     /* [out] */ struct _IIS_CRYPTO_BLOB **ppDataBlob);
  652. void __RPC_STUB IMSAdminBaseW_R_GetData_Stub(
  653.     IRpcStubBuffer *This,
  654.     IRpcChannelBuffer *_pRpcChannelBuffer,
  655.     PRPC_MESSAGE _pRpcMessage,
  656.     DWORD *_pdwStubPhase);
  657. HRESULT STDMETHODCALLTYPE IMSAdminBaseW_DeleteData_Proxy( 
  658.     IMSAdminBaseW * This,
  659.     /* [in] */ METADATA_HANDLE hMDHandle,
  660.     /* [string][in][unique] */ LPCWSTR pszMDPath,
  661.     /* [in] */ DWORD dwMDIdentifier,
  662.     /* [in] */ DWORD dwMDDataType);
  663. void __RPC_STUB IMSAdminBaseW_DeleteData_Stub(
  664.     IRpcStubBuffer *This,
  665.     IRpcChannelBuffer *_pRpcChannelBuffer,
  666.     PRPC_MESSAGE _pRpcMessage,
  667.     DWORD *_pdwStubPhase);
  668. /* [call_as] */ HRESULT STDMETHODCALLTYPE IMSAdminBaseW_R_EnumData_Proxy( 
  669.     IMSAdminBaseW * This,
  670.     /* [in] */ METADATA_HANDLE hMDHandle,
  671.     /* [string][in][unique] */ LPCWSTR pszMDPath,
  672.     /* [out][in] */ PMETADATA_RECORD pmdrMDData,
  673.     /* [in] */ DWORD dwMDEnumDataIndex,
  674.     /* [out] */ DWORD *pdwMDRequiredDataLen,
  675.     /* [out] */ struct _IIS_CRYPTO_BLOB **ppDataBlob);
  676. void __RPC_STUB IMSAdminBaseW_R_EnumData_Stub(
  677.     IRpcStubBuffer *This,
  678.     IRpcChannelBuffer *_pRpcChannelBuffer,
  679.     PRPC_MESSAGE _pRpcMessage,
  680.     DWORD *_pdwStubPhase);
  681. /* [call_as] */ HRESULT STDMETHODCALLTYPE IMSAdminBaseW_R_GetAllData_Proxy( 
  682.     IMSAdminBaseW * This,
  683.     /* [in] */ METADATA_HANDLE hMDHandle,
  684.     /* [string][in][unique] */ LPCWSTR pszMDPath,
  685.     /* [in] */ DWORD dwMDAttributes,
  686.     /* [in] */ DWORD dwMDUserType,
  687.     /* [in] */ DWORD dwMDDataType,
  688.     /* [out] */ DWORD *pdwMDNumDataEntries,
  689.     /* [out] */ DWORD *pdwMDDataSetNumber,
  690.     /* [in] */ DWORD dwMDBufferSize,
  691.     /* [out] */ DWORD *pdwMDRequiredBufferSize,
  692.     /* [out] */ struct _IIS_CRYPTO_BLOB **ppDataBlob);
  693. void __RPC_STUB IMSAdminBaseW_R_GetAllData_Stub(
  694.     IRpcStubBuffer *This,
  695.     IRpcChannelBuffer *_pRpcChannelBuffer,
  696.     PRPC_MESSAGE _pRpcMessage,
  697.     DWORD *_pdwStubPhase);
  698. HRESULT STDMETHODCALLTYPE IMSAdminBaseW_DeleteAllData_Proxy( 
  699.     IMSAdminBaseW * This,
  700.     /* [in] */ METADATA_HANDLE hMDHandle,
  701.     /* [string][in][unique] */ LPCWSTR pszMDPath,
  702.     /* [in] */ DWORD dwMDUserType,
  703.     /* [in] */ DWORD dwMDDataType);
  704. void __RPC_STUB IMSAdminBaseW_DeleteAllData_Stub(
  705.     IRpcStubBuffer *This,
  706.     IRpcChannelBuffer *_pRpcChannelBuffer,
  707.     PRPC_MESSAGE _pRpcMessage,
  708.     DWORD *_pdwStubPhase);
  709. HRESULT STDMETHODCALLTYPE IMSAdminBaseW_CopyData_Proxy( 
  710.     IMSAdminBaseW * This,
  711.     /* [in] */ METADATA_HANDLE hMDSourceHandle,
  712.     /* [string][in][unique] */ LPCWSTR pszMDSourcePath,
  713.     /* [in] */ METADATA_HANDLE hMDDestHandle,
  714.     /* [string][in][unique] */ LPCWSTR pszMDDestPath,
  715.     /* [in] */ DWORD dwMDAttributes,
  716.     /* [in] */ DWORD dwMDUserType,
  717.     /* [in] */ DWORD dwMDDataType,
  718.     /* [in] */ BOOL bMDCopyFlag);
  719. void __RPC_STUB IMSAdminBaseW_CopyData_Stub(
  720.     IRpcStubBuffer *This,
  721.     IRpcChannelBuffer *_pRpcChannelBuffer,
  722.     PRPC_MESSAGE _pRpcMessage,
  723.     DWORD *_pdwStubPhase);
  724. HRESULT STDMETHODCALLTYPE IMSAdminBaseW_GetDataPaths_Proxy( 
  725.     IMSAdminBaseW * This,
  726.     /* [in] */ METADATA_HANDLE hMDHandle,
  727.     /* [string][in][unique] */ LPCWSTR pszMDPath,
  728.     /* [in] */ DWORD dwMDIdentifier,
  729.     /* [in] */ DWORD dwMDDataType,
  730.     /* [in] */ DWORD dwMDBufferSize,
  731.     /* [size_is][out] */ WCHAR *pszBuffer,
  732.     /* [out] */ DWORD *pdwMDRequiredBufferSize);
  733. void __RPC_STUB IMSAdminBaseW_GetDataPaths_Stub(
  734.     IRpcStubBuffer *This,
  735.     IRpcChannelBuffer *_pRpcChannelBuffer,
  736.     PRPC_MESSAGE _pRpcMessage,
  737.     DWORD *_pdwStubPhase);
  738. HRESULT STDMETHODCALLTYPE IMSAdminBaseW_OpenKey_Proxy( 
  739.     IMSAdminBaseW * This,
  740.     /* [in] */ METADATA_HANDLE hMDHandle,
  741.     /* [string][in][unique] */ LPCWSTR pszMDPath,
  742.     /* [in] */ DWORD dwMDAccessRequested,
  743.     /* [in] */ DWORD dwMDTimeOut,
  744.     /* [out] */ PMETADATA_HANDLE phMDNewHandle);
  745. void __RPC_STUB IMSAdminBaseW_OpenKey_Stub(
  746.     IRpcStubBuffer *This,
  747.     IRpcChannelBuffer *_pRpcChannelBuffer,
  748.     PRPC_MESSAGE _pRpcMessage,
  749.     DWORD *_pdwStubPhase);
  750. HRESULT STDMETHODCALLTYPE IMSAdminBaseW_CloseKey_Proxy( 
  751.     IMSAdminBaseW * This,
  752.     /* [in] */ METADATA_HANDLE hMDHandle);
  753. void __RPC_STUB IMSAdminBaseW_CloseKey_Stub(
  754.     IRpcStubBuffer *This,
  755.     IRpcChannelBuffer *_pRpcChannelBuffer,
  756.     PRPC_MESSAGE _pRpcMessage,
  757.     DWORD *_pdwStubPhase);
  758. HRESULT STDMETHODCALLTYPE IMSAdminBaseW_ChangePermissions_Proxy( 
  759.     IMSAdminBaseW * This,
  760.     /* [in] */ METADATA_HANDLE hMDHandle,
  761.     /* [in] */ DWORD dwMDTimeOut,
  762.     /* [in] */ DWORD dwMDAccessRequested);
  763. void __RPC_STUB IMSAdminBaseW_ChangePermissions_Stub(
  764.     IRpcStubBuffer *This,
  765.     IRpcChannelBuffer *_pRpcChannelBuffer,
  766.     PRPC_MESSAGE _pRpcMessage,
  767.     DWORD *_pdwStubPhase);
  768. HRESULT STDMETHODCALLTYPE IMSAdminBaseW_SaveData_Proxy( 
  769.     IMSAdminBaseW * This);
  770. void __RPC_STUB IMSAdminBaseW_SaveData_Stub(
  771.     IRpcStubBuffer *This,
  772.     IRpcChannelBuffer *_pRpcChannelBuffer,
  773.     PRPC_MESSAGE _pRpcMessage,
  774.     DWORD *_pdwStubPhase);
  775. HRESULT STDMETHODCALLTYPE IMSAdminBaseW_GetHandleInfo_Proxy( 
  776.     IMSAdminBaseW * This,
  777.     /* [in] */ METADATA_HANDLE hMDHandle,
  778.     /* [out] */ PMETADATA_HANDLE_INFO pmdhiInfo);
  779. void __RPC_STUB IMSAdminBaseW_GetHandleInfo_Stub(
  780.     IRpcStubBuffer *This,
  781.     IRpcChannelBuffer *_pRpcChannelBuffer,
  782.     PRPC_MESSAGE _pRpcMessage,
  783.     DWORD *_pdwStubPhase);
  784. HRESULT STDMETHODCALLTYPE IMSAdminBaseW_GetSystemChangeNumber_Proxy( 
  785.     IMSAdminBaseW * This,
  786.     /* [out] */ DWORD *pdwSystemChangeNumber);
  787. void __RPC_STUB IMSAdminBaseW_GetSystemChangeNumber_Stub(
  788.     IRpcStubBuffer *This,
  789.     IRpcChannelBuffer *_pRpcChannelBuffer,
  790.     PRPC_MESSAGE _pRpcMessage,
  791.     DWORD *_pdwStubPhase);
  792. HRESULT STDMETHODCALLTYPE IMSAdminBaseW_GetDataSetNumber_Proxy( 
  793.     IMSAdminBaseW * This,
  794.     /* [in] */ METADATA_HANDLE hMDHandle,
  795.     /* [string][in][unique] */ LPCWSTR pszMDPath,
  796.     /* [out] */ DWORD *pdwMDDataSetNumber);
  797. void __RPC_STUB IMSAdminBaseW_GetDataSetNumber_Stub(
  798.     IRpcStubBuffer *This,
  799.     IRpcChannelBuffer *_pRpcChannelBuffer,
  800.     PRPC_MESSAGE _pRpcMessage,
  801.     DWORD *_pdwStubPhase);
  802. HRESULT STDMETHODCALLTYPE IMSAdminBaseW_SetLastChangeTime_Proxy( 
  803.     IMSAdminBaseW * This,
  804.     /* [in] */ METADATA_HANDLE hMDHandle,
  805.     /* [string][in][unique] */ LPCWSTR pszMDPath,
  806.     /* [in] */ PFILETIME pftMDLastChangeTime,
  807.     /* [in] */ BOOL bLocalTime);
  808. void __RPC_STUB IMSAdminBaseW_SetLastChangeTime_Stub(
  809.     IRpcStubBuffer *This,
  810.     IRpcChannelBuffer *_pRpcChannelBuffer,
  811.     PRPC_MESSAGE _pRpcMessage,
  812.     DWORD *_pdwStubPhase);
  813. HRESULT STDMETHODCALLTYPE IMSAdminBaseW_GetLastChangeTime_Proxy( 
  814.     IMSAdminBaseW * This,
  815.     /* [in] */ METADATA_HANDLE hMDHandle,
  816.     /* [string][in][unique] */ LPCWSTR pszMDPath,
  817.     /* [out] */ PFILETIME pftMDLastChangeTime,
  818.     /* [in] */ BOOL bLocalTime);
  819. void __RPC_STUB IMSAdminBaseW_GetLastChangeTime_Stub(
  820.     IRpcStubBuffer *This,
  821.     IRpcChannelBuffer *_pRpcChannelBuffer,
  822.     PRPC_MESSAGE _pRpcMessage,
  823.     DWORD *_pdwStubPhase);
  824. /* [call_as] */ HRESULT STDMETHODCALLTYPE IMSAdminBaseW_R_KeyExchangePhase1_Proxy( 
  825.     IMSAdminBaseW * This,
  826.     /* [in][unique] */ struct _IIS_CRYPTO_BLOB *pClientKeyExchangeKeyBlob,
  827.     /* [in][unique] */ struct _IIS_CRYPTO_BLOB *pClientSignatureKeyBlob,
  828.     /* [out] */ struct _IIS_CRYPTO_BLOB **ppServerKeyExchangeKeyBlob,
  829.     /* [out] */ struct _IIS_CRYPTO_BLOB **ppServerSignatureKeyBlob,
  830.     /* [out] */ struct _IIS_CRYPTO_BLOB **ppServerSessionKeyBlob);
  831. void __RPC_STUB IMSAdminBaseW_R_KeyExchangePhase1_Stub(
  832.     IRpcStubBuffer *This,
  833.     IRpcChannelBuffer *_pRpcChannelBuffer,
  834.     PRPC_MESSAGE _pRpcMessage,
  835.     DWORD *_pdwStubPhase);
  836. /* [call_as] */ HRESULT STDMETHODCALLTYPE IMSAdminBaseW_R_KeyExchangePhase2_Proxy( 
  837.     IMSAdminBaseW * This,
  838.     /* [in][unique] */ struct _IIS_CRYPTO_BLOB *pClientSessionKeyBlob,
  839.     /* [in][unique] */ struct _IIS_CRYPTO_BLOB *pClientHashBlob,
  840.     /* [out] */ struct _IIS_CRYPTO_BLOB **ppServerHashBlob);
  841. void __RPC_STUB IMSAdminBaseW_R_KeyExchangePhase2_Stub(
  842.     IRpcStubBuffer *This,
  843.     IRpcChannelBuffer *_pRpcChannelBuffer,
  844.     PRPC_MESSAGE _pRpcMessage,
  845.     DWORD *_pdwStubPhase);
  846. HRESULT STDMETHODCALLTYPE IMSAdminBaseW_Backup_Proxy( 
  847.     IMSAdminBaseW * This,
  848.     /* [string][in][unique] */ LPCWSTR pszMDBackupLocation,
  849.     /* [in] */ DWORD dwMDVersion,
  850.     /* [in] */ DWORD dwMDFlags);
  851. void __RPC_STUB IMSAdminBaseW_Backup_Stub(
  852.     IRpcStubBuffer *This,
  853.     IRpcChannelBuffer *_pRpcChannelBuffer,
  854.     PRPC_MESSAGE _pRpcMessage,
  855.     DWORD *_pdwStubPhase);
  856. HRESULT STDMETHODCALLTYPE IMSAdminBaseW_Restore_Proxy( 
  857.     IMSAdminBaseW * This,
  858.     /* [string][in][unique] */ LPCWSTR pszMDBackupLocation,
  859.     /* [in] */ DWORD dwMDVersion,
  860.     /* [in] */ DWORD dwMDFlags);
  861. void __RPC_STUB IMSAdminBaseW_Restore_Stub(
  862.     IRpcStubBuffer *This,
  863.     IRpcChannelBuffer *_pRpcChannelBuffer,
  864.     PRPC_MESSAGE _pRpcMessage,
  865.     DWORD *_pdwStubPhase);
  866. HRESULT STDMETHODCALLTYPE IMSAdminBaseW_EnumBackups_Proxy( 
  867.     IMSAdminBaseW * This,
  868.     /* [size_is][out][in] */ LPWSTR pszMDBackupLocation,
  869.     /* [out] */ DWORD *pdwMDVersion,
  870.     /* [out] */ PFILETIME pftMDBackupTime,
  871.     /* [in] */ DWORD dwMDEnumIndex);
  872. void __RPC_STUB IMSAdminBaseW_EnumBackups_Stub(
  873.     IRpcStubBuffer *This,
  874.     IRpcChannelBuffer *_pRpcChannelBuffer,
  875.     PRPC_MESSAGE _pRpcMessage,
  876.     DWORD *_pdwStubPhase);
  877. HRESULT STDMETHODCALLTYPE IMSAdminBaseW_DeleteBackup_Proxy( 
  878.     IMSAdminBaseW * This,
  879.     /* [string][in][unique] */ LPCWSTR pszMDBackupLocation,
  880.     /* [in] */ DWORD dwMDVersion);
  881. void __RPC_STUB IMSAdminBaseW_DeleteBackup_Stub(
  882.     IRpcStubBuffer *This,
  883.     IRpcChannelBuffer *_pRpcChannelBuffer,
  884.     PRPC_MESSAGE _pRpcMessage,
  885.     DWORD *_pdwStubPhase);
  886. HRESULT STDMETHODCALLTYPE IMSAdminBaseW_UnmarshalInterface_Proxy( 
  887.     IMSAdminBaseW * This,
  888.     /* [out] */ IMSAdminBaseW **piadmbwInterface);
  889. void __RPC_STUB IMSAdminBaseW_UnmarshalInterface_Stub(
  890.     IRpcStubBuffer *This,
  891.     IRpcChannelBuffer *_pRpcChannelBuffer,
  892.     PRPC_MESSAGE _pRpcMessage,
  893.     DWORD *_pdwStubPhase);
  894. /* [call_as] */ HRESULT STDMETHODCALLTYPE IMSAdminBaseW_R_GetServerGuid_Proxy( 
  895.     IMSAdminBaseW * This,
  896.     /* [out] */ GUID *pServerGuid);
  897. void __RPC_STUB IMSAdminBaseW_R_GetServerGuid_Stub(
  898.     IRpcStubBuffer *This,
  899.     IRpcChannelBuffer *_pRpcChannelBuffer,
  900.     PRPC_MESSAGE _pRpcMessage,
  901.     DWORD *_pdwStubPhase);
  902. #endif  /* __IMSAdminBaseW_INTERFACE_DEFINED__ */
  903. #ifndef __IMSAdminBase2W_INTERFACE_DEFINED__
  904. #define __IMSAdminBase2W_INTERFACE_DEFINED__
  905. /* interface IMSAdminBase2W */
  906. /* [unique][uuid][object] */ 
  907. EXTERN_C const IID IID_IMSAdminBase2W;
  908. #if defined(__cplusplus) && !defined(CINTERFACE)
  909.     
  910.     MIDL_INTERFACE("8298d101-f992-43b7-8eca-5052d885b995")
  911.     IMSAdminBase2W : public IMSAdminBaseW
  912.     {
  913.     public:
  914.         virtual HRESULT STDMETHODCALLTYPE BackupWithPasswd( 
  915.             /* [string][in][unique] */ LPCWSTR pszMDBackupLocation,
  916.             /* [in] */ DWORD dwMDVersion,
  917.             /* [in] */ DWORD dwMDFlags,
  918.             /* [string][in][unique] */ LPCWSTR pszPasswd) = 0;
  919.         
  920.         virtual HRESULT STDMETHODCALLTYPE RestoreWithPasswd( 
  921.             /* [string][in][unique] */ LPCWSTR pszMDBackupLocation,
  922.             /* [in] */ DWORD dwMDVersion,
  923.             /* [in] */ DWORD dwMDFlags,
  924.             /* [string][in][unique] */ LPCWSTR pszPasswd) = 0;
  925.         
  926.         virtual HRESULT STDMETHODCALLTYPE Export( 
  927.             /* [string][in][unique] */ LPCWSTR pszPasswd,
  928.             /* [string][in][unique] */ LPCWSTR pszFileName,
  929.             /* [string][in][unique] */ LPCWSTR pszSourcePath,
  930.             /* [in] */ DWORD dwMDFlags) = 0;
  931.         
  932.         virtual HRESULT STDMETHODCALLTYPE Import( 
  933.             /* [string][in][unique] */ LPCWSTR pszPasswd,
  934.             /* [string][in][unique] */ LPCWSTR pszFileName,
  935.             /* [string][in][unique] */ LPCWSTR pszSourcePath,
  936.             /* [string][in][unique] */ LPCWSTR pszDestPath,
  937.             /* [in] */ DWORD dwMDFlags) = 0;
  938.         
  939.         virtual HRESULT STDMETHODCALLTYPE RestoreHistory( 
  940.             /* [string][in][unique] */ LPCWSTR pszMDHistoryLocation,
  941.             /* [in] */ DWORD dwMDMajorVersion,
  942.             /* [in] */ DWORD dwMDMinorVersion,
  943.             /* [in] */ DWORD dwMDFlags) = 0;
  944.         
  945.         virtual HRESULT STDMETHODCALLTYPE EnumHistory( 
  946.             /* [size_is][out][in] */ LPWSTR pszMDHistoryLocation,
  947.             /* [out] */ DWORD *pdwMDMajorVersion,
  948.             /* [out] */ DWORD *pdwMDMinorVersion,
  949.             /* [out] */ PFILETIME pftMDHistoryTime,
  950.             /* [in] */ DWORD dwMDEnumIndex) = 0;
  951.         
  952.     };
  953.     
  954. #else  /* C style interface */
  955.     typedef struct IMSAdminBase2WVtbl
  956.     {
  957.         BEGIN_INTERFACE
  958.         
  959.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  960.             IMSAdminBase2W * This,
  961.             /* [in] */ REFIID riid,
  962.             /* [iid_is][out] */ void **ppvObject);
  963.         
  964.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  965.             IMSAdminBase2W * This);
  966.         
  967.         ULONG ( STDMETHODCALLTYPE *Release )( 
  968.             IMSAdminBase2W * This);
  969.         
  970.         HRESULT ( STDMETHODCALLTYPE *AddKey )( 
  971.             IMSAdminBase2W * This,
  972.             /* [in] */ METADATA_HANDLE hMDHandle,
  973.             /* [string][in][unique] */ LPCWSTR pszMDPath);
  974.         
  975.         HRESULT ( STDMETHODCALLTYPE *DeleteKey )( 
  976.             IMSAdminBase2W * This,
  977.             /* [in] */ METADATA_HANDLE hMDHandle,
  978.             /* [string][in][unique] */ LPCWSTR pszMDPath);
  979.         
  980.         HRESULT ( STDMETHODCALLTYPE *DeleteChildKeys )( 
  981.             IMSAdminBase2W * This,
  982.             /* [in] */ METADATA_HANDLE hMDHandle,
  983.             /* [string][in][unique] */ LPCWSTR pszMDPath);
  984.         
  985.         HRESULT ( STDMETHODCALLTYPE *EnumKeys )( 
  986.             IMSAdminBase2W * This,
  987.             /* [in] */ METADATA_HANDLE hMDHandle,
  988.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  989.             /* [size_is][out] */ LPWSTR pszMDName,
  990.             /* [in] */ DWORD dwMDEnumObjectIndex);
  991.         
  992.         HRESULT ( STDMETHODCALLTYPE *CopyKey )( 
  993.             IMSAdminBase2W * This,
  994.             /* [in] */ METADATA_HANDLE hMDSourceHandle,
  995.             /* [string][in][unique] */ LPCWSTR pszMDSourcePath,
  996.             /* [in] */ METADATA_HANDLE hMDDestHandle,
  997.             /* [string][in][unique] */ LPCWSTR pszMDDestPath,
  998.             /* [in] */ BOOL bMDOverwriteFlag,
  999.             /* [in] */ BOOL bMDCopyFlag);
  1000.         
  1001.         HRESULT ( STDMETHODCALLTYPE *RenameKey )( 
  1002.             IMSAdminBase2W * This,
  1003.             /* [in] */ METADATA_HANDLE hMDHandle,
  1004.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  1005.             /* [string][in][unique] */ LPCWSTR pszMDNewName);
  1006.         
  1007.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetData )( 
  1008.             IMSAdminBase2W * This,
  1009.             /* [in] */ METADATA_HANDLE hMDHandle,
  1010.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  1011.             /* [in] */ PMETADATA_RECORD pmdrMDData);
  1012.         
  1013.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetData )( 
  1014.             IMSAdminBase2W * This,
  1015.             /* [in] */ METADATA_HANDLE hMDHandle,
  1016.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  1017.             /* [out][in] */ PMETADATA_RECORD pmdrMDData,
  1018.             /* [out] */ DWORD *pdwMDRequiredDataLen);
  1019.         
  1020.         HRESULT ( STDMETHODCALLTYPE *DeleteData )( 
  1021.             IMSAdminBase2W * This,
  1022.             /* [in] */ METADATA_HANDLE hMDHandle,
  1023.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  1024.             /* [in] */ DWORD dwMDIdentifier,
  1025.             /* [in] */ DWORD dwMDDataType);
  1026.         
  1027.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *EnumData )( 
  1028.             IMSAdminBase2W * This,
  1029.             /* [in] */ METADATA_HANDLE hMDHandle,
  1030.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  1031.             /* [out][in] */ PMETADATA_RECORD pmdrMDData,
  1032.             /* [in] */ DWORD dwMDEnumDataIndex,
  1033.             /* [out] */ DWORD *pdwMDRequiredDataLen);
  1034.         
  1035.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetAllData )( 
  1036.             IMSAdminBase2W * This,
  1037.             /* [in] */ METADATA_HANDLE hMDHandle,
  1038.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  1039.             /* [in] */ DWORD dwMDAttributes,
  1040.             /* [in] */ DWORD dwMDUserType,
  1041.             /* [in] */ DWORD dwMDDataType,
  1042.             /* [out] */ DWORD *pdwMDNumDataEntries,
  1043.             /* [out] */ DWORD *pdwMDDataSetNumber,
  1044.             /* [in] */ DWORD dwMDBufferSize,
  1045.             /* [size_is][out] */ unsigned char *pbMDBuffer,
  1046.             /* [out] */ DWORD *pdwMDRequiredBufferSize);
  1047.         
  1048.         HRESULT ( STDMETHODCALLTYPE *DeleteAllData )( 
  1049.             IMSAdminBase2W * This,
  1050.             /* [in] */ METADATA_HANDLE hMDHandle,
  1051.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  1052.             /* [in] */ DWORD dwMDUserType,
  1053.             /* [in] */ DWORD dwMDDataType);
  1054.         
  1055.         HRESULT ( STDMETHODCALLTYPE *CopyData )( 
  1056.             IMSAdminBase2W * This,
  1057.             /* [in] */ METADATA_HANDLE hMDSourceHandle,
  1058.             /* [string][in][unique] */ LPCWSTR pszMDSourcePath,
  1059.             /* [in] */ METADATA_HANDLE hMDDestHandle,
  1060.             /* [string][in][unique] */ LPCWSTR pszMDDestPath,
  1061.             /* [in] */ DWORD dwMDAttributes,
  1062.             /* [in] */ DWORD dwMDUserType,
  1063.             /* [in] */ DWORD dwMDDataType,
  1064.             /* [in] */ BOOL bMDCopyFlag);
  1065.         
  1066.         HRESULT ( STDMETHODCALLTYPE *GetDataPaths )( 
  1067.             IMSAdminBase2W * This,
  1068.             /* [in] */ METADATA_HANDLE hMDHandle,
  1069.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  1070.             /* [in] */ DWORD dwMDIdentifier,
  1071.             /* [in] */ DWORD dwMDDataType,
  1072.             /* [in] */ DWORD dwMDBufferSize,
  1073.             /* [size_is][out] */ WCHAR *pszBuffer,
  1074.             /* [out] */ DWORD *pdwMDRequiredBufferSize);
  1075.         
  1076.         HRESULT ( STDMETHODCALLTYPE *OpenKey )( 
  1077.             IMSAdminBase2W * This,
  1078.             /* [in] */ METADATA_HANDLE hMDHandle,
  1079.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  1080.             /* [in] */ DWORD dwMDAccessRequested,
  1081.             /* [in] */ DWORD dwMDTimeOut,
  1082.             /* [out] */ PMETADATA_HANDLE phMDNewHandle);
  1083.         
  1084.         HRESULT ( STDMETHODCALLTYPE *CloseKey )( 
  1085.             IMSAdminBase2W * This,
  1086.             /* [in] */ METADATA_HANDLE hMDHandle);
  1087.         
  1088.         HRESULT ( STDMETHODCALLTYPE *ChangePermissions )( 
  1089.             IMSAdminBase2W * This,
  1090.             /* [in] */ METADATA_HANDLE hMDHandle,
  1091.             /* [in] */ DWORD dwMDTimeOut,
  1092.             /* [in] */ DWORD dwMDAccessRequested);
  1093.         
  1094.         HRESULT ( STDMETHODCALLTYPE *SaveData )( 
  1095.             IMSAdminBase2W * This);
  1096.         
  1097.         HRESULT ( STDMETHODCALLTYPE *GetHandleInfo )( 
  1098.             IMSAdminBase2W * This,
  1099.             /* [in] */ METADATA_HANDLE hMDHandle,
  1100.             /* [out] */ PMETADATA_HANDLE_INFO pmdhiInfo);
  1101.         
  1102.         HRESULT ( STDMETHODCALLTYPE *GetSystemChangeNumber )( 
  1103.             IMSAdminBase2W * This,
  1104.             /* [out] */ DWORD *pdwSystemChangeNumber);
  1105.         
  1106.         HRESULT ( STDMETHODCALLTYPE *GetDataSetNumber )( 
  1107.             IMSAdminBase2W * This,
  1108.             /* [in] */ METADATA_HANDLE hMDHandle,
  1109.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  1110.             /* [out] */ DWORD *pdwMDDataSetNumber);
  1111.         
  1112.         HRESULT ( STDMETHODCALLTYPE *SetLastChangeTime )( 
  1113.             IMSAdminBase2W * This,
  1114.             /* [in] */ METADATA_HANDLE hMDHandle,
  1115.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  1116.             /* [in] */ PFILETIME pftMDLastChangeTime,
  1117.             /* [in] */ BOOL bLocalTime);
  1118.         
  1119.         HRESULT ( STDMETHODCALLTYPE *GetLastChangeTime )( 
  1120.             IMSAdminBase2W * This,
  1121.             /* [in] */ METADATA_HANDLE hMDHandle,
  1122.             /* [string][in][unique] */ LPCWSTR pszMDPath,
  1123.             /* [out] */ PFILETIME pftMDLastChangeTime,
  1124.             /* [in] */ BOOL bLocalTime);
  1125.         
  1126.         /* [restricted][local] */ HRESULT ( STDMETHODCALLTYPE *KeyExchangePhase1 )( 
  1127.             IMSAdminBase2W * This);
  1128.         
  1129.         /* [restricted][local] */ HRESULT ( STDMETHODCALLTYPE *KeyExchangePhase2 )( 
  1130.             IMSAdminBase2W * This);
  1131.         
  1132.         HRESULT ( STDMETHODCALLTYPE *Backup )( 
  1133.             IMSAdminBase2W * This,
  1134.             /* [string][in][unique] */ LPCWSTR pszMDBackupLocation,
  1135.             /* [in] */ DWORD dwMDVersion,
  1136.             /* [in] */ DWORD dwMDFlags);
  1137.         
  1138.         HRESULT ( STDMETHODCALLTYPE *Restore )( 
  1139.             IMSAdminBase2W * This,
  1140.             /* [string][in][unique] */ LPCWSTR pszMDBackupLocation,
  1141.             /* [in] */ DWORD dwMDVersion,
  1142.             /* [in] */ DWORD dwMDFlags);
  1143.         
  1144.         HRESULT ( STDMETHODCALLTYPE *EnumBackups )( 
  1145.             IMSAdminBase2W * This,
  1146.             /* [size_is][out][in] */ LPWSTR pszMDBackupLocation,
  1147.             /* [out] */ DWORD *pdwMDVersion,
  1148.             /* [out] */ PFILETIME pftMDBackupTime,
  1149.             /* [in] */ DWORD dwMDEnumIndex);
  1150.         
  1151.         HRESULT ( STDMETHODCALLTYPE *DeleteBackup )( 
  1152.             IMSAdminBase2W * This,
  1153.             /* [string][in][unique] */ LPCWSTR pszMDBackupLocation,
  1154.             /* [in] */ DWORD dwMDVersion);
  1155.         
  1156.         HRESULT ( STDMETHODCALLTYPE *UnmarshalInterface )( 
  1157.             IMSAdminBase2W * This,
  1158.             /* [out] */ IMSAdminBaseW **piadmbwInterface);
  1159.         
  1160.         /* [restricted][local] */ HRESULT ( STDMETHODCALLTYPE *GetServerGuid )( 
  1161.             IMSAdminBase2W * This);
  1162.         
  1163.         HRESULT ( STDMETHODCALLTYPE *BackupWithPasswd )( 
  1164.             IMSAdminBase2W * This,
  1165.             /* [string][in][unique] */ LPCWSTR pszMDBackupLocation,
  1166.             /* [in] */ DWORD dwMDVersion,
  1167.             /* [in] */ DWORD dwMDFlags,
  1168.             /* [string][in][unique] */ LPCWSTR pszPasswd);
  1169.         
  1170.         HRESULT ( STDMETHODCALLTYPE *RestoreWithPasswd )( 
  1171.             IMSAdminBase2W * This,
  1172.             /* [string][in][unique] */ LPCWSTR pszMDBackupLocation,
  1173.             /* [in] */ DWORD dwMDVersion,
  1174.             /* [in] */ DWORD dwMDFlags,
  1175.             /* [string][in][unique] */ LPCWSTR pszPasswd);
  1176.         
  1177.         HRESULT ( STDMETHODCALLTYPE *Export )( 
  1178.             IMSAdminBase2W * This,
  1179.             /* [string][in][unique] */ LPCWSTR pszPasswd,
  1180.             /* [string][in][unique] */ LPCWSTR pszFileName,
  1181.             /* [string][in][unique] */ LPCWSTR pszSourcePath,
  1182.             /* [in] */ DWORD dwMDFlags);
  1183.         
  1184.         HRESULT ( STDMETHODCALLTYPE *Import )( 
  1185.             IMSAdminBase2W * This,
  1186.             /* [string][in][unique] */ LPCWSTR pszPasswd,
  1187.             /* [string][in][unique] */ LPCWSTR pszFileName,
  1188.             /* [string][in][unique] */ LPCWSTR pszSourcePath,
  1189.             /* [string][in][unique] */ LPCWSTR pszDestPath,
  1190.             /* [in] */ DWORD dwMDFlags);
  1191.         
  1192.         HRESULT ( STDMETHODCALLTYPE *RestoreHistory )( 
  1193.             IMSAdminBase2W * This,
  1194.             /* [string][in][unique] */ LPCWSTR pszMDHistoryLocation,
  1195.             /* [in] */ DWORD dwMDMajorVersion,
  1196.             /* [in] */ DWORD dwMDMinorVersion,
  1197.             /* [in] */ DWORD dwMDFlags);
  1198.         
  1199.         HRESULT ( STDMETHODCALLTYPE *EnumHistory )( 
  1200.             IMSAdminBase2W * This,
  1201.             /* [size_is][out][in] */ LPWSTR pszMDHistoryLocation,
  1202.             /* [out] */ DWORD *pdwMDMajorVersion,
  1203.             /* [out] */ DWORD *pdwMDMinorVersion,
  1204.             /* [out] */ PFILETIME pftMDHistoryTime,
  1205.             /* [in] */ DWORD dwMDEnumIndex);
  1206.         
  1207.         END_INTERFACE
  1208.     } IMSAdminBase2WVtbl;
  1209.     interface IMSAdminBase2W
  1210.     {
  1211.         CONST_VTBL struct IMSAdminBase2WVtbl *lpVtbl;
  1212.     };
  1213.     
  1214. #ifdef COBJMACROS
  1215. #define IMSAdminBase2W_QueryInterface(This,riid,ppvObject)
  1216.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1217. #define IMSAdminBase2W_AddRef(This)
  1218.     (This)->lpVtbl -> AddRef(This)
  1219. #define IMSAdminBase2W_Release(This)
  1220.     (This)->lpVtbl -> Release(This)
  1221. #define IMSAdminBase2W_AddKey(This,hMDHandle,pszMDPath)
  1222.     (This)->lpVtbl -> AddKey(This,hMDHandle,pszMDPath)
  1223. #define IMSAdminBase2W_DeleteKey(This,hMDHandle,pszMDPath)
  1224.     (This)->lpVtbl -> DeleteKey(This,hMDHandle,pszMDPath)
  1225. #define IMSAdminBase2W_DeleteChildKeys(This,hMDHandle,pszMDPath)
  1226.     (This)->lpVtbl -> DeleteChildKeys(This,hMDHandle,pszMDPath)
  1227. #define IMSAdminBase2W_EnumKeys(This,hMDHandle,pszMDPath,pszMDName,dwMDEnumObjectIndex)
  1228.     (This)->lpVtbl -> EnumKeys(This,hMDHandle,pszMDPath,pszMDName,dwMDEnumObjectIndex)
  1229. #define IMSAdminBase2W_CopyKey(This,hMDSourceHandle,pszMDSourcePath,hMDDestHandle,pszMDDestPath,bMDOverwriteFlag,bMDCopyFlag)
  1230.     (This)->lpVtbl -> CopyKey(This,hMDSourceHandle,pszMDSourcePath,hMDDestHandle,pszMDDestPath,bMDOverwriteFlag,bMDCopyFlag)
  1231. #define IMSAdminBase2W_RenameKey(This,hMDHandle,pszMDPath,pszMDNewName)
  1232.     (This)->lpVtbl -> RenameKey(This,hMDHandle,pszMDPath,pszMDNewName)
  1233. #define IMSAdminBase2W_SetData(This,hMDHandle,pszMDPath,pmdrMDData)
  1234.     (This)->lpVtbl -> SetData(This,hMDHandle,pszMDPath,pmdrMDData)
  1235. #define IMSAdminBase2W_GetData(This,hMDHandle,pszMDPath,pmdrMDData,pdwMDRequiredDataLen)
  1236.     (This)->lpVtbl -> GetData(This,hMDHandle,pszMDPath,pmdrMDData,pdwMDRequiredDataLen)
  1237. #define IMSAdminBase2W_DeleteData(This,hMDHandle,pszMDPath,dwMDIdentifier,dwMDDataType)
  1238.     (This)->lpVtbl -> DeleteData(This,hMDHandle,pszMDPath,dwMDIdentifier,dwMDDataType)
  1239. #define IMSAdminBase2W_EnumData(This,hMDHandle,pszMDPath,pmdrMDData,dwMDEnumDataIndex,pdwMDRequiredDataLen)
  1240.     (This)->lpVtbl -> EnumData(This,hMDHandle,pszMDPath,pmdrMDData,dwMDEnumDataIndex,pdwMDRequiredDataLen)
  1241. #define IMSAdminBase2W_GetAllData(This,hMDHandle,pszMDPath,dwMDAttributes,dwMDUserType,dwMDDataType,pdwMDNumDataEntries,pdwMDDataSetNumber,dwMDBufferSize,pbMDBuffer,pdwMDRequiredBufferSize)
  1242.     (This)->lpVtbl -> GetAllData(This,hMDHandle,pszMDPath,dwMDAttributes,dwMDUserType,dwMDDataType,pdwMDNumDataEntries,pdwMDDataSetNumber,dwMDBufferSize,pbMDBuffer,pdwMDRequiredBufferSize)
  1243. #define IMSAdminBase2W_DeleteAllData(This,hMDHandle,pszMDPath,dwMDUserType,dwMDDataType)
  1244.     (This)->lpVtbl -> DeleteAllData(This,hMDHandle,pszMDPath,dwMDUserType,dwMDDataType)
  1245. #define IMSAdminBase2W_CopyData(This,hMDSourceHandle,pszMDSourcePath,hMDDestHandle,pszMDDestPath,dwMDAttributes,dwMDUserType,dwMDDataType,bMDCopyFlag)
  1246.     (This)->lpVtbl -> CopyData(This,hMDSourceHandle,pszMDSourcePath,hMDDestHandle,pszMDDestPath,dwMDAttributes,dwMDUserType,dwMDDataType,bMDCopyFlag)
  1247. #define IMSAdminBase2W_GetDataPaths(This,hMDHandle,pszMDPath,dwMDIdentifier,dwMDDataType,dwMDBufferSize,pszBuffer,pdwMDRequiredBufferSize)
  1248.     (This)->lpVtbl -> GetDataPaths(This,hMDHandle,pszMDPath,dwMDIdentifier,dwMDDataType,dwMDBufferSize,pszBuffer,pdwMDRequiredBufferSize)
  1249. #define IMSAdminBase2W_OpenKey(This,hMDHandle,pszMDPath,dwMDAccessRequested,dwMDTimeOut,phMDNewHandle)
  1250.     (This)->lpVtbl -> OpenKey(This,hMDHandle,pszMDPath,dwMDAccessRequested,dwMDTimeOut,phMDNewHandle)
  1251. #define IMSAdminBase2W_CloseKey(This,hMDHandle)
  1252.     (This)->lpVtbl -> CloseKey(This,hMDHandle)
  1253. #define IMSAdminBase2W_ChangePermissions(This,hMDHandle,dwMDTimeOut,dwMDAccessRequested)
  1254.     (This)->lpVtbl -> ChangePermissions(This,hMDHandle,dwMDTimeOut,dwMDAccessRequested)
  1255. #define IMSAdminBase2W_SaveData(This)
  1256.     (This)->lpVtbl -> SaveData(This)
  1257. #define IMSAdminBase2W_GetHandleInfo(This,hMDHandle,pmdhiInfo)
  1258.     (This)->lpVtbl -> GetHandleInfo(This,hMDHandle,pmdhiInfo)
  1259. #define IMSAdminBase2W_GetSystemChangeNumber(This,pdwSystemChangeNumber)
  1260.     (This)->lpVtbl -> GetSystemChangeNumber(This,pdwSystemChangeNumber)
  1261. #define IMSAdminBase2W_GetDataSetNumber(This,hMDHandle,pszMDPath,pdwMDDataSetNumber)
  1262.     (This)->lpVtbl -> GetDataSetNumber(This,hMDHandle,pszMDPath,pdwMDDataSetNumber)
  1263. #define IMSAdminBase2W_SetLastChangeTime(This,hMDHandle,pszMDPath,pftMDLastChangeTime,bLocalTime)
  1264.     (This)->lpVtbl -> SetLastChangeTime(This,hMDHandle,pszMDPath,pftMDLastChangeTime,bLocalTime)
  1265. #define IMSAdminBase2W_GetLastChangeTime(This,hMDHandle,pszMDPath,pftMDLastChangeTime,bLocalTime)
  1266.     (This)->lpVtbl -> GetLastChangeTime(This,hMDHandle,pszMDPath,pftMDLastChangeTime,bLocalTime)
  1267. #define IMSAdminBase2W_KeyExchangePhase1(This)
  1268.     (This)->lpVtbl -> KeyExchangePhase1(This)
  1269. #define IMSAdminBase2W_KeyExchangePhase2(This)
  1270.     (This)->lpVtbl -> KeyExchangePhase2(This)
  1271. #define IMSAdminBase2W_Backup(This,pszMDBackupLocation,dwMDVersion,dwMDFlags)
  1272.     (This)->lpVtbl -> Backup(This,pszMDBackupLocation,dwMDVersion,dwMDFlags)
  1273. #define IMSAdminBase2W_Restore(This,pszMDBackupLocation,dwMDVersion,dwMDFlags)
  1274.     (This)->lpVtbl -> Restore(This,pszMDBackupLocation,dwMDVersion,dwMDFlags)
  1275. #define IMSAdminBase2W_EnumBackups(This,pszMDBackupLocation,pdwMDVersion,pftMDBackupTime,dwMDEnumIndex)
  1276.     (This)->lpVtbl -> EnumBackups(This,pszMDBackupLocation,pdwMDVersion,pftMDBackupTime,dwMDEnumIndex)
  1277. #define IMSAdminBase2W_DeleteBackup(This,pszMDBackupLocation,dwMDVersion)
  1278.     (This)->lpVtbl -> DeleteBackup(This,pszMDBackupLocation,dwMDVersion)
  1279. #define IMSAdminBase2W_UnmarshalInterface(This,piadmbwInterface)
  1280.     (This)->lpVtbl -> UnmarshalInterface(This,piadmbwInterface)
  1281. #define IMSAdminBase2W_GetServerGuid(This)
  1282.     (This)->lpVtbl -> GetServerGuid(This)
  1283. #define IMSAdminBase2W_BackupWithPasswd(This,pszMDBackupLocation,dwMDVersion,dwMDFlags,pszPasswd)
  1284.     (This)->lpVtbl -> BackupWithPasswd(This,pszMDBackupLocation,dwMDVersion,dwMDFlags,pszPasswd)
  1285. #define IMSAdminBase2W_RestoreWithPasswd(This,pszMDBackupLocation,dwMDVersion,dwMDFlags,pszPasswd)
  1286.     (This)->lpVtbl -> RestoreWithPasswd(This,pszMDBackupLocation,dwMDVersion,dwMDFlags,pszPasswd)
  1287. #define IMSAdminBase2W_Export(This,pszPasswd,pszFileName,pszSourcePath,dwMDFlags)
  1288.     (This)->lpVtbl -> Export(This,pszPasswd,pszFileName,pszSourcePath,dwMDFlags)
  1289. #define IMSAdminBase2W_Import(This,pszPasswd,pszFileName,pszSourcePath,pszDestPath,dwMDFlags)
  1290.     (This)->lpVtbl -> Import(This,pszPasswd,pszFileName,pszSourcePath,pszDestPath,dwMDFlags)
  1291. #define IMSAdminBase2W_RestoreHistory(This,pszMDHistoryLocation,dwMDMajorVersion,dwMDMinorVersion,dwMDFlags)
  1292.     (This)->lpVtbl -> RestoreHistory(This,pszMDHistoryLocation,dwMDMajorVersion,dwMDMinorVersion,dwMDFlags)
  1293. #define IMSAdminBase2W_EnumHistory(This,pszMDHistoryLocation,pdwMDMajorVersion,pdwMDMinorVersion,pftMDHistoryTime,dwMDEnumIndex)
  1294.     (This)->lpVtbl -> EnumHistory(This,pszMDHistoryLocation,pdwMDMajorVersion,pdwMDMinorVersion,pftMDHistoryTime,dwMDEnumIndex)
  1295. #endif /* COBJMACROS */
  1296. #endif  /* C style interface */
  1297. HRESULT STDMETHODCALLTYPE IMSAdminBase2W_BackupWithPasswd_Proxy( 
  1298.     IMSAdminBase2W * This,
  1299.     /* [string][in][unique] */ LPCWSTR pszMDBackupLocation,
  1300.     /* [in] */ DWORD dwMDVersion,
  1301.     /* [in] */ DWORD dwMDFlags,
  1302.     /* [string][in][unique] */ LPCWSTR pszPasswd);
  1303. void __RPC_STUB IMSAdminBase2W_BackupWithPasswd_Stub(
  1304.     IRpcStubBuffer *This,
  1305.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1306.     PRPC_MESSAGE _pRpcMessage,
  1307.     DWORD *_pdwStubPhase);
  1308. HRESULT STDMETHODCALLTYPE IMSAdminBase2W_RestoreWithPasswd_Proxy( 
  1309.     IMSAdminBase2W * This,
  1310.     /* [string][in][unique] */ LPCWSTR pszMDBackupLocation,
  1311.     /* [in] */ DWORD dwMDVersion,
  1312.     /* [in] */ DWORD dwMDFlags,
  1313.     /* [string][in][unique] */ LPCWSTR pszPasswd);
  1314. void __RPC_STUB IMSAdminBase2W_RestoreWithPasswd_Stub(
  1315.     IRpcStubBuffer *This,
  1316.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1317.     PRPC_MESSAGE _pRpcMessage,
  1318.     DWORD *_pdwStubPhase);
  1319. HRESULT STDMETHODCALLTYPE IMSAdminBase2W_Export_Proxy( 
  1320.     IMSAdminBase2W * This,
  1321.     /* [string][in][unique] */ LPCWSTR pszPasswd,
  1322.     /* [string][in][unique] */ LPCWSTR pszFileName,
  1323.     /* [string][in][unique] */ LPCWSTR pszSourcePath,
  1324.     /* [in] */ DWORD dwMDFlags);
  1325. void __RPC_STUB IMSAdminBase2W_Export_Stub(
  1326.     IRpcStubBuffer *This,
  1327.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1328.     PRPC_MESSAGE _pRpcMessage,
  1329.     DWORD *_pdwStubPhase);
  1330. HRESULT STDMETHODCALLTYPE IMSAdminBase2W_Import_Proxy( 
  1331.     IMSAdminBase2W * This,
  1332.     /* [string][in][unique] */ LPCWSTR pszPasswd,
  1333.     /* [string][in][unique] */ LPCWSTR pszFileName,
  1334.     /* [string][in][unique] */ LPCWSTR pszSourcePath,
  1335.     /* [string][in][unique] */ LPCWSTR pszDestPath,
  1336.     /* [in] */ DWORD dwMDFlags);
  1337. void __RPC_STUB IMSAdminBase2W_Import_Stub(
  1338.     IRpcStubBuffer *This,
  1339.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1340.     PRPC_MESSAGE _pRpcMessage,
  1341.     DWORD *_pdwStubPhase);
  1342. HRESULT STDMETHODCALLTYPE IMSAdminBase2W_RestoreHistory_Proxy( 
  1343.     IMSAdminBase2W * This,
  1344.     /* [string][in][unique] */ LPCWSTR pszMDHistoryLocation,
  1345.     /* [in] */ DWORD dwMDMajorVersion,
  1346.     /* [in] */ DWORD dwMDMinorVersion,
  1347.     /* [in] */ DWORD dwMDFlags);
  1348. void __RPC_STUB IMSAdminBase2W_RestoreHistory_Stub(
  1349.     IRpcStubBuffer *This,
  1350.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1351.     PRPC_MESSAGE _pRpcMessage,
  1352.     DWORD *_pdwStubPhase);
  1353. HRESULT STDMETHODCALLTYPE IMSAdminBase2W_EnumHistory_Proxy( 
  1354.     IMSAdminBase2W * This,
  1355.     /* [size_is][out][in] */ LPWSTR pszMDHistoryLocation,
  1356.     /* [out] */ DWORD *pdwMDMajorVersion,
  1357.     /* [out] */ DWORD *pdwMDMinorVersion,
  1358.     /* [out] */ PFILETIME pftMDHistoryTime,
  1359.     /* [in] */ DWORD dwMDEnumIndex);
  1360. void __RPC_STUB IMSAdminBase2W_EnumHistory_Stub(
  1361.     IRpcStubBuffer *This,
  1362.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1363.     PRPC_MESSAGE _pRpcMessage,
  1364.     DWORD *_pdwStubPhase);
  1365. #endif  /* __IMSAdminBase2W_INTERFACE_DEFINED__ */
  1366. #ifndef __IMSAdminBaseSinkW_INTERFACE_DEFINED__
  1367. #define __IMSAdminBaseSinkW_INTERFACE_DEFINED__
  1368. /* interface IMSAdminBaseSinkW */
  1369. /* [unique][async_uuid][uuid][object] */ 
  1370. EXTERN_C const IID IID_IMSAdminBaseSinkW;
  1371. #if defined(__cplusplus) && !defined(CINTERFACE)
  1372.     
  1373.     MIDL_INTERFACE("A9E69612-B80D-11d0-B9B9-00A0C922E750")
  1374.     IMSAdminBaseSinkW : public IUnknown
  1375.     {
  1376.     public:
  1377.         virtual HRESULT STDMETHODCALLTYPE SinkNotify( 
  1378.             /* [in] */ DWORD dwMDNumElements,
  1379.             /* [size_is][in] */ MD_CHANGE_OBJECT_W pcoChangeList[  ]) = 0;
  1380.         
  1381.         virtual HRESULT STDMETHODCALLTYPE ShutdownNotify( void) = 0;
  1382.         
  1383.     };
  1384.     
  1385. #else  /* C style interface */
  1386.     typedef struct IMSAdminBaseSinkWVtbl
  1387.     {
  1388.         BEGIN_INTERFACE
  1389.         
  1390.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1391.             IMSAdminBaseSinkW * This,
  1392.             /* [in] */ REFIID riid,
  1393.             /* [iid_is][out] */ void **ppvObject);
  1394.         
  1395.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1396.             IMSAdminBaseSinkW * This);
  1397.         
  1398.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1399.             IMSAdminBaseSinkW * This);
  1400.         
  1401.         HRESULT ( STDMETHODCALLTYPE *SinkNotify )( 
  1402.             IMSAdminBaseSinkW * This,
  1403.             /* [in] */ DWORD dwMDNumElements,
  1404.             /* [size_is][in] */ MD_CHANGE_OBJECT_W pcoChangeList[  ]);
  1405.         
  1406.         HRESULT ( STDMETHODCALLTYPE *ShutdownNotify )( 
  1407.             IMSAdminBaseSinkW * This);
  1408.         
  1409.         END_INTERFACE
  1410.     } IMSAdminBaseSinkWVtbl;
  1411.     interface IMSAdminBaseSinkW
  1412.     {
  1413.         CONST_VTBL struct IMSAdminBaseSinkWVtbl *lpVtbl;
  1414.     };
  1415.     
  1416. #ifdef COBJMACROS
  1417. #define IMSAdminBaseSinkW_QueryInterface(This,riid,ppvObject)
  1418.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1419. #define IMSAdminBaseSinkW_AddRef(This)
  1420.     (This)->lpVtbl -> AddRef(This)
  1421. #define IMSAdminBaseSinkW_Release(This)
  1422.     (This)->lpVtbl -> Release(This)
  1423. #define IMSAdminBaseSinkW_SinkNotify(This,dwMDNumElements,pcoChangeList)
  1424.     (This)->lpVtbl -> SinkNotify(This,dwMDNumElements,pcoChangeList)
  1425. #define IMSAdminBaseSinkW_ShutdownNotify(This)
  1426.     (This)->lpVtbl -> ShutdownNotify(This)
  1427. #endif /* COBJMACROS */
  1428. #endif  /* C style interface */
  1429. HRESULT STDMETHODCALLTYPE IMSAdminBaseSinkW_SinkNotify_Proxy( 
  1430.     IMSAdminBaseSinkW * This,
  1431.     /* [in] */ DWORD dwMDNumElements,
  1432.     /* [size_is][in] */ MD_CHANGE_OBJECT_W pcoChangeList[  ]);
  1433. void __RPC_STUB IMSAdminBaseSinkW_SinkNotify_Stub(
  1434.     IRpcStubBuffer *This,
  1435.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1436.     PRPC_MESSAGE _pRpcMessage,
  1437.     DWORD *_pdwStubPhase);
  1438. HRESULT STDMETHODCALLTYPE IMSAdminBaseSinkW_ShutdownNotify_Proxy( 
  1439.     IMSAdminBaseSinkW * This);
  1440. void __RPC_STUB IMSAdminBaseSinkW_ShutdownNotify_Stub(
  1441.     IRpcStubBuffer *This,
  1442.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1443.     PRPC_MESSAGE _pRpcMessage,
  1444.     DWORD *_pdwStubPhase);
  1445. #endif  /* __IMSAdminBaseSinkW_INTERFACE_DEFINED__ */
  1446. #ifndef __AsyncIMSAdminBaseSinkW_INTERFACE_DEFINED__
  1447. #define __AsyncIMSAdminBaseSinkW_INTERFACE_DEFINED__
  1448. /* interface AsyncIMSAdminBaseSinkW */
  1449. /* [uuid][unique][object] */ 
  1450. EXTERN_C const IID IID_AsyncIMSAdminBaseSinkW;
  1451. #if defined(__cplusplus) && !defined(CINTERFACE)
  1452.     
  1453.     MIDL_INTERFACE("A9E69613-B80D-11d0-B9B9-00A0C922E750")
  1454.     AsyncIMSAdminBaseSinkW : public IUnknown
  1455.     {
  1456.     public:
  1457.         virtual HRESULT STDMETHODCALLTYPE Begin_SinkNotify( 
  1458.             /* [in] */ DWORD dwMDNumElements,
  1459.             /* [size_is][in] */ MD_CHANGE_OBJECT_W pcoChangeList[  ]) = 0;
  1460.         
  1461.         virtual HRESULT STDMETHODCALLTYPE Finish_SinkNotify( void) = 0;
  1462.         
  1463.         virtual HRESULT STDMETHODCALLTYPE Begin_ShutdownNotify( void) = 0;
  1464.         
  1465.         virtual HRESULT STDMETHODCALLTYPE Finish_ShutdownNotify( void) = 0;
  1466.         
  1467.     };
  1468.     
  1469. #else  /* C style interface */
  1470.     typedef struct AsyncIMSAdminBaseSinkWVtbl
  1471.     {
  1472.         BEGIN_INTERFACE
  1473.         
  1474.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1475.             AsyncIMSAdminBaseSinkW * This,
  1476.             /* [in] */ REFIID riid,
  1477.             /* [iid_is][out] */ void **ppvObject);
  1478.         
  1479.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1480.             AsyncIMSAdminBaseSinkW * This);
  1481.         
  1482.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1483.             AsyncIMSAdminBaseSinkW * This);
  1484.         
  1485.         HRESULT ( STDMETHODCALLTYPE *Begin_SinkNotify )( 
  1486.             AsyncIMSAdminBaseSinkW * This,
  1487.             /* [in] */ DWORD dwMDNumElements,
  1488.             /* [size_is][in] */ MD_CHANGE_OBJECT_W pcoChangeList[  ]);
  1489.         
  1490.         HRESULT ( STDMETHODCALLTYPE *Finish_SinkNotify )( 
  1491.             AsyncIMSAdminBaseSinkW * This);
  1492.         
  1493.         HRESULT ( STDMETHODCALLTYPE *Begin_ShutdownNotify )( 
  1494.             AsyncIMSAdminBaseSinkW * This);
  1495.         
  1496.         HRESULT ( STDMETHODCALLTYPE *Finish_ShutdownNotify )( 
  1497.             AsyncIMSAdminBaseSinkW * This);
  1498.         
  1499.         END_INTERFACE
  1500.     } AsyncIMSAdminBaseSinkWVtbl;
  1501.     interface AsyncIMSAdminBaseSinkW
  1502.     {
  1503.         CONST_VTBL struct AsyncIMSAdminBaseSinkWVtbl *lpVtbl;
  1504.     };
  1505.     
  1506. #ifdef COBJMACROS
  1507. #define AsyncIMSAdminBaseSinkW_QueryInterface(This,riid,ppvObject)
  1508.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1509. #define AsyncIMSAdminBaseSinkW_AddRef(This)
  1510.     (This)->lpVtbl -> AddRef(This)
  1511. #define AsyncIMSAdminBaseSinkW_Release(This)
  1512.     (This)->lpVtbl -> Release(This)
  1513. #define AsyncIMSAdminBaseSinkW_Begin_SinkNotify(This,dwMDNumElements,pcoChangeList)
  1514.     (This)->lpVtbl -> Begin_SinkNotify(This,dwMDNumElements,pcoChangeList)
  1515. #define AsyncIMSAdminBaseSinkW_Finish_SinkNotify(This)
  1516.     (This)->lpVtbl -> Finish_SinkNotify(This)
  1517. #define AsyncIMSAdminBaseSinkW_Begin_ShutdownNotify(This)
  1518.     (This)->lpVtbl -> Begin_ShutdownNotify(This)
  1519. #define AsyncIMSAdminBaseSinkW_Finish_ShutdownNotify(This)
  1520.     (This)->lpVtbl -> Finish_ShutdownNotify(This)
  1521. #endif /* COBJMACROS */
  1522. #endif  /* C style interface */
  1523. HRESULT STDMETHODCALLTYPE AsyncIMSAdminBaseSinkW_Begin_SinkNotify_Proxy( 
  1524.     AsyncIMSAdminBaseSinkW * This,
  1525.     /* [in] */ DWORD dwMDNumElements,
  1526.     /* [size_is][in] */ MD_CHANGE_OBJECT_W pcoChangeList[  ]);
  1527. void __RPC_STUB AsyncIMSAdminBaseSinkW_Begin_SinkNotify_Stub(
  1528.     IRpcStubBuffer *This,
  1529.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1530.     PRPC_MESSAGE _pRpcMessage,
  1531.     DWORD *_pdwStubPhase);
  1532. HRESULT STDMETHODCALLTYPE AsyncIMSAdminBaseSinkW_Finish_SinkNotify_Proxy( 
  1533.     AsyncIMSAdminBaseSinkW * This);
  1534. void __RPC_STUB AsyncIMSAdminBaseSinkW_Finish_SinkNotify_Stub(
  1535.     IRpcStubBuffer *This,
  1536.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1537.     PRPC_MESSAGE _pRpcMessage,
  1538.     DWORD *_pdwStubPhase);
  1539. HRESULT STDMETHODCALLTYPE AsyncIMSAdminBaseSinkW_Begin_ShutdownNotify_Proxy( 
  1540.     AsyncIMSAdminBaseSinkW * This);
  1541. void __RPC_STUB AsyncIMSAdminBaseSinkW_Begin_ShutdownNotify_Stub(
  1542.     IRpcStubBuffer *This,
  1543.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1544.     PRPC_MESSAGE _pRpcMessage,
  1545.     DWORD *_pdwStubPhase);
  1546. HRESULT STDMETHODCALLTYPE AsyncIMSAdminBaseSinkW_Finish_ShutdownNotify_Proxy( 
  1547.     AsyncIMSAdminBaseSinkW * This);
  1548. void __RPC_STUB AsyncIMSAdminBaseSinkW_Finish_ShutdownNotify_Stub(
  1549.     IRpcStubBuffer *This,
  1550.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1551.     PRPC_MESSAGE _pRpcMessage,
  1552.     DWORD *_pdwStubPhase);
  1553. #endif  /* __AsyncIMSAdminBaseSinkW_INTERFACE_DEFINED__ */
  1554. /* interface __MIDL_itf_iadmw_0260 */
  1555. /* [local] */ 
  1556. #endif
  1557. extern RPC_IF_HANDLE __MIDL_itf_iadmw_0260_v0_0_c_ifspec;
  1558. extern RPC_IF_HANDLE __MIDL_itf_iadmw_0260_v0_0_s_ifspec;
  1559. /* Additional Prototypes for ALL interfaces */
  1560. /* [local] */ HRESULT STDMETHODCALLTYPE IMSAdminBaseW_SetData_Proxy( 
  1561.     IMSAdminBaseW * This,
  1562.     /* [in] */ METADATA_HANDLE hMDHandle,
  1563.     /* [string][in][unique] */ LPCWSTR pszMDPath,
  1564.     /* [in] */ PMETADATA_RECORD pmdrMDData);
  1565. /* [call_as] */ HRESULT STDMETHODCALLTYPE IMSAdminBaseW_SetData_Stub( 
  1566.     IMSAdminBaseW * This,
  1567.     /* [in] */ METADATA_HANDLE hMDHandle,
  1568.     /* [string][in][unique] */ LPCWSTR pszMDPath,
  1569.     /* [in] */ PMETADATA_RECORD pmdrMDData);
  1570. /* [local] */ HRESULT STDMETHODCALLTYPE IMSAdminBaseW_GetData_Proxy( 
  1571.     IMSAdminBaseW * This,
  1572.     /* [in] */ METADATA_HANDLE hMDHandle,
  1573.     /* [string][in][unique] */ LPCWSTR pszMDPath,
  1574.     /* [out][in] */ PMETADATA_RECORD pmdrMDData,
  1575.     /* [out] */ DWORD *pdwMDRequiredDataLen);
  1576. /* [call_as] */ HRESULT STDMETHODCALLTYPE IMSAdminBaseW_GetData_Stub( 
  1577.     IMSAdminBaseW * This,
  1578.     /* [in] */ METADATA_HANDLE hMDHandle,
  1579.     /* [string][in][unique] */ LPCWSTR pszMDPath,
  1580.     /* [out][in] */ PMETADATA_RECORD pmdrMDData,
  1581.     /* [out] */ DWORD *pdwMDRequiredDataLen,
  1582.     /* [out] */ struct _IIS_CRYPTO_BLOB **ppDataBlob);
  1583. /* [local] */ HRESULT STDMETHODCALLTYPE IMSAdminBaseW_EnumData_Proxy( 
  1584.     IMSAdminBaseW * This,
  1585.     /* [in] */ METADATA_HANDLE hMDHandle,
  1586.     /* [string][in][unique] */ LPCWSTR pszMDPath,
  1587.     /* [out][in] */ PMETADATA_RECORD pmdrMDData,
  1588.     /* [in] */ DWORD dwMDEnumDataIndex,
  1589.     /* [out] */ DWORD *pdwMDRequiredDataLen);
  1590. /* [call_as] */ HRESULT STDMETHODCALLTYPE IMSAdminBaseW_EnumData_Stub( 
  1591.     IMSAdminBaseW * This,
  1592.     /* [in] */ METADATA_HANDLE hMDHandle,
  1593.     /* [string][in][unique] */ LPCWSTR pszMDPath,
  1594.     /* [out][in] */ PMETADATA_RECORD pmdrMDData,
  1595.     /* [in] */ DWORD dwMDEnumDataIndex,
  1596.     /* [out] */ DWORD *pdwMDRequiredDataLen,
  1597.     /* [out] */ struct _IIS_CRYPTO_BLOB **ppDataBlob);
  1598. /* [local] */ HRESULT STDMETHODCALLTYPE IMSAdminBaseW_GetAllData_Proxy( 
  1599.     IMSAdminBaseW * This,
  1600.     /* [in] */ METADATA_HANDLE hMDHandle,
  1601.     /* [string][in][unique] */ LPCWSTR pszMDPath,
  1602.     /* [in] */ DWORD dwMDAttributes,
  1603.     /* [in] */ DWORD dwMDUserType,
  1604.     /* [in] */ DWORD dwMDDataType,
  1605.     /* [out] */ DWORD *pdwMDNumDataEntries,
  1606.     /* [out] */ DWORD *pdwMDDataSetNumber,
  1607.     /* [in] */ DWORD dwMDBufferSize,
  1608.     /* [size_is][out] */ unsigned char *pbMDBuffer,
  1609.     /* [out] */ DWORD *pdwMDRequiredBufferSize);
  1610. /* [call_as] */ HRESULT STDMETHODCALLTYPE IMSAdminBaseW_GetAllData_Stub( 
  1611.     IMSAdminBaseW * This,
  1612.     /* [in] */ METADATA_HANDLE hMDHandle,
  1613.     /* [string][in][unique] */ LPCWSTR pszMDPath,
  1614.     /* [in] */ DWORD dwMDAttributes,
  1615.     /* [in] */ DWORD dwMDUserType,
  1616.     /* [in] */ DWORD dwMDDataType,
  1617.     /* [out] */ DWORD *pdwMDNumDataEntries,
  1618.     /* [out] */ DWORD *pdwMDDataSetNumber,
  1619.     /* [in] */ DWORD dwMDBufferSize,
  1620.     /* [out] */ DWORD *pdwMDRequiredBufferSize,
  1621.     /* [out] */ struct _IIS_CRYPTO_BLOB **ppDataBlob);
  1622. /* [restricted][local] */ HRESULT STDMETHODCALLTYPE IMSAdminBaseW_KeyExchangePhase1_Proxy( 
  1623.     IMSAdminBaseW * This);
  1624. /* [call_as] */ HRESULT STDMETHODCALLTYPE IMSAdminBaseW_KeyExchangePhase1_Stub( 
  1625.     IMSAdminBaseW * This,
  1626.     /* [in][unique] */ struct _IIS_CRYPTO_BLOB *pClientKeyExchangeKeyBlob,
  1627.     /* [in][unique] */ struct _IIS_CRYPTO_BLOB *pClientSignatureKeyBlob,
  1628.     /* [out] */ struct _IIS_CRYPTO_BLOB **ppServerKeyExchangeKeyBlob,
  1629.     /* [out] */ struct _IIS_CRYPTO_BLOB **ppServerSignatureKeyBlob,
  1630.     /* [out] */ struct _IIS_CRYPTO_BLOB **ppServerSessionKeyBlob);
  1631. /* [restricted][local] */ HRESULT STDMETHODCALLTYPE IMSAdminBaseW_KeyExchangePhase2_Proxy( 
  1632.     IMSAdminBaseW * This);
  1633. /* [call_as] */ HRESULT STDMETHODCALLTYPE IMSAdminBaseW_KeyExchangePhase2_Stub( 
  1634.     IMSAdminBaseW * This,
  1635.     /* [in][unique] */ struct _IIS_CRYPTO_BLOB *pClientSessionKeyBlob,
  1636.     /* [in][unique] */ struct _IIS_CRYPTO_BLOB *pClientHashBlob,
  1637.     /* [out] */ struct _IIS_CRYPTO_BLOB **ppServerHashBlob);
  1638. /* [restricted][local] */ HRESULT STDMETHODCALLTYPE IMSAdminBaseW_GetServerGuid_Proxy( 
  1639.     IMSAdminBaseW * This);
  1640. /* [call_as] */ HRESULT STDMETHODCALLTYPE IMSAdminBaseW_GetServerGuid_Stub( 
  1641.     IMSAdminBaseW * This,
  1642.     /* [out] */ GUID *pServerGuid);
  1643. /* end of Additional Prototypes */
  1644. #ifdef __cplusplus
  1645. }
  1646. #endif
  1647. #endif