cpp_quote("/*++") cpp_quote(" ") cpp_quote("Copyright (c) 1997-1999 Microsoft Corporation") cpp_quote(" ") cpp_quote("Module Name: iadmw.h") cpp_quote(" ") cpp_quote(" Admin Objects Interfaces") cpp_quote(" ") cpp_quote ("--*/") cpp_quote("#ifndef _ADM_IADMW_") cpp_quote("#define _ADM_IADMW_") import "mddefw.idl"; import "unknwn.idl"; import "wtypes.idl"; import "objidl.idl"; import "ocidl.idl"; import "iiscblob.h"; // Removed by POSTMIDL.SCR after IADMW.H is generated! cpp_quote("#include ") cpp_quote("#include ") cpp_quote("/* ") cpp_quote(" Error Codes ") cpp_quote(" ") cpp_quote(" Admin api's all return HRESULTS. Since internal results are either ") cpp_quote(" winerrors or Metadata specific return codes (see mdmsg.h), they are ") cpp_quote(" converted to HRESULTS using the RETURNCODETOHRESULT macro (see ") cpp_quote(" commsg.h). ") cpp_quote("*/ ") cpp_quote(" ") cpp_quote("/* ") cpp_quote(" Max Name Length ") cpp_quote(" The maximum number of characters in the length of a metaobject name, ") cpp_quote(" including the terminating NULL. This refers to each node in the tree, ") cpp_quote(" not the entire path. ") cpp_quote(" eg. strlen(\"Root\") < ADMINDATA_MAX_NAME_LEN ") cpp_quote("*/ ") #define ADMINDATA_MAX_NAME_LEN 256 cpp_quote("#define ADMINDATA_MAX_NAME_LEN 256") cpp_quote(" ") cpp_quote("#define CLSID_MSAdminBase CLSID_MSAdminBase_W ") cpp_quote("#define IID_IMSAdminBase IID_IMSAdminBase_W ") cpp_quote("#define IMSAdminBase IMSAdminBaseW ") cpp_quote("#define IID_IMSAdminBase2 IID_IMSAdminBase2_W ") cpp_quote("#define IMSAdminBase2 IMSAdminBase2W ") cpp_quote("#define IID_IMSAdminBase3 IID_IMSAdminBase3_W ") cpp_quote("#define IMSAdminBase3 IMSAdminBase3W ") cpp_quote("#define IMSAdminBaseSink IMSAdminBaseSinkW ") cpp_quote("#define IID_IMSAdminBaseSink IID_IMSAdminBaseSink_W ") cpp_quote("#define IMSImpExpHelp IMSImpExpHelpW ") cpp_quote("#define IID_IMSImpExpHelp IID_IMSImpExpHelp_W ") cpp_quote("#define GETAdminBaseCLSID GETAdminBaseCLSIDW ") cpp_quote(" ") cpp_quote("#define AsyncIMSAdminBaseSink AsyncIMSAdminBaseSinkW ") cpp_quote("#define IID_AsyncIMSAdminBaseSink IID_AsyncIMSAdminBaseSink_W ") cpp_quote("DEFINE_GUID(CLSID_MSAdminBase_W, 0xa9e69610, 0xb80d, 0x11d0, 0xb9, 0xb9, 0x0, 0xa0, 0xc9, 0x22, 0xe7, 0x50);") cpp_quote("DEFINE_GUID(IID_IMSAdminBase_W, 0x70b51430, 0xb6ca, 0x11d0, 0xb9, 0xb9, 0x0, 0xa0, 0xc9, 0x22, 0xe7, 0x50);") cpp_quote("DEFINE_GUID(IID_IMSAdminBase2_W, 0x8298d101, 0xf992, 0x43b7, 0x8e, 0xca, 0x50, 0x52, 0xd8, 0x85, 0xb9, 0x95);") cpp_quote("DEFINE_GUID(IID_IMSAdminBase3_W, 0xf612954d, 0x3b0b, 0x4c56, 0x95, 0x63, 0x22, 0x7b, 0x7b, 0xe6, 0x24, 0xb4);") cpp_quote("DEFINE_GUID(IID_IMSImpExpHelp_W, 0x29ff67ff, 0x8050, 0x480f, 0x9f, 0x30, 0xcc, 0x41, 0x63, 0x5f, 0x2f, 0x9d);") cpp_quote("DEFINE_GUID(IID_IMSAdminBaseSink_W, 0xa9e69612, 0xb80d, 0x11d0, 0xb9, 0xb9, 0x0, 0xa0, 0xc9, 0x22, 0xe7, 0x50);") cpp_quote("DEFINE_GUID(IID_AsyncIMSAdminBaseSink_W, 0xa9e69613, 0xb80d, 0x11d0, 0xb9, 0xb9, 0x0, 0xa0, 0xc9, 0x22, 0xe7, 0x50);") cpp_quote("DEFINE_GUID(IID_IMSAdminBaseSinkNoAsyncCallback, 0x41704d5c, 0x75a0, 0x4d0e, 0xae, 0x3f, 0x80, 0xa5, 0xfc, 0x4c, 0xf6, 0x53);") cpp_quote("#define GETAdminBaseCLSIDW(IsService) CLSID_MSAdminBase_W") cpp_quote("/* ") cpp_quote("The Main Interface, UNICODE ") cpp_quote("*/ ") [ object, uuid(70B51430-B6CA-11d0-B9B9-00A0C922E750), pointer_default(unique) ] interface IMSAdminBaseW : IUnknown { // Interfaces HRESULT AddKey([in] METADATA_HANDLE hMDHandle, [unique, in, string] LPCWSTR pszMDPath); HRESULT DeleteKey([in] METADATA_HANDLE hMDHandle, [unique, in, string] LPCWSTR pszMDPath); HRESULT DeleteChildKeys([in] METADATA_HANDLE hMDHandle, [unique, in, string] LPCWSTR pszMDPath); HRESULT EnumKeys([in] METADATA_HANDLE hMDHandle, [unique, in, string] LPCWSTR pszMDPath, [out, size_is(ADMINDATA_MAX_NAME_LEN)] LPWSTR pszMDName, [in] DWORD dwMDEnumObjectIndex); HRESULT CopyKey([in] METADATA_HANDLE hMDSourceHandle, [unique, in, string] LPCWSTR pszMDSourcePath, [in] METADATA_HANDLE hMDDestHandle, [unique, in, string] LPCWSTR pszMDDestPath, [in] BOOL bMDOverwriteFlag, [in] BOOL bMDCopyFlag); HRESULT RenameKey([in] METADATA_HANDLE hMDHandle, [unique, in, string] LPCWSTR pszMDPath, [unique, in, string] LPCWSTR pszMDNewName); [local] HRESULT SetData([in] METADATA_HANDLE hMDHandle, [unique, in, string] LPCWSTR pszMDPath, [in] PMETADATA_RECORD pmdrMDData); [call_as(SetData)] HRESULT R_SetData([in] METADATA_HANDLE hMDHandle, [unique, in, string] LPCWSTR pszMDPath, [in] PMETADATA_RECORD pmdrMDData); [local] HRESULT GetData([in] METADATA_HANDLE hMDHandle, [unique, in, string] LPCWSTR pszMDPath, [in, out] PMETADATA_RECORD pmdrMDData, [out] DWORD *pdwMDRequiredDataLen); [call_as(GetData)] HRESULT R_GetData([in] METADATA_HANDLE hMDHandle, [unique, in, string] LPCWSTR pszMDPath, [in, out] PMETADATA_RECORD pmdrMDData, [out] DWORD *pdwMDRequiredDataLen, [out] struct _IIS_CRYPTO_BLOB **ppDataBlob); HRESULT DeleteData([in] METADATA_HANDLE hMDHandle, [unique, in, string] LPCWSTR pszMDPath, [in] DWORD dwMDIdentifier, [in] DWORD dwMDDataType); [local] HRESULT EnumData([in] METADATA_HANDLE hMDHandle, [unique, in, string] LPCWSTR pszMDPath, [in, out] PMETADATA_RECORD pmdrMDData, [in] DWORD dwMDEnumDataIndex, [out] DWORD *pdwMDRequiredDataLen); [call_as(EnumData)] HRESULT R_EnumData([in] METADATA_HANDLE hMDHandle, [unique, in, string] LPCWSTR pszMDPath, [in, out] PMETADATA_RECORD pmdrMDData, [in] DWORD dwMDEnumDataIndex, [out] DWORD *pdwMDRequiredDataLen, [out] struct _IIS_CRYPTO_BLOB **ppDataBlob); [local] HRESULT GetAllData([in] METADATA_HANDLE hMDHandle, [unique, in, string] LPCWSTR pszMDPath, [in] DWORD dwMDAttributes, [in] DWORD dwMDUserType, [in] DWORD dwMDDataType, [out] DWORD *pdwMDNumDataEntries, [out] DWORD *pdwMDDataSetNumber, [in] DWORD dwMDBufferSize, [out, size_is(dwMDBufferSize)] unsigned char *pbMDBuffer, [out] DWORD *pdwMDRequiredBufferSize); [call_as(GetAllData)] HRESULT R_GetAllData([in] METADATA_HANDLE hMDHandle, [unique, in, string] LPCWSTR pszMDPath, [in] DWORD dwMDAttributes, [in] DWORD dwMDUserType, [in] DWORD dwMDDataType, [out] DWORD *pdwMDNumDataEntries, [out] DWORD *pdwMDDataSetNumber, [in] DWORD dwMDBufferSize, [out] DWORD *pdwMDRequiredBufferSize, [out] struct _IIS_CRYPTO_BLOB **ppDataBlob); HRESULT DeleteAllData([in] METADATA_HANDLE hMDHandle, [unique, in, string] LPCWSTR pszMDPath, [in] DWORD dwMDUserType, [in] DWORD dwMDDataType); HRESULT CopyData([in] METADATA_HANDLE hMDSourceHandle, [unique, in, string] LPCWSTR pszMDSourcePath, [in] METADATA_HANDLE hMDDestHandle, [unique, in, string] LPCWSTR pszMDDestPath, [in] DWORD dwMDAttributes, [in] DWORD dwMDUserType, [in] DWORD dwMDDataType, [in] BOOL bMDCopyFlag); HRESULT GetDataPaths([in] METADATA_HANDLE hMDHandle, [unique, in, string] LPCWSTR pszMDPath, [in] DWORD dwMDIdentifier, [in] DWORD dwMDDataType, [in] DWORD dwMDBufferSize, [out, size_is(dwMDBufferSize)] WCHAR *pszBuffer, [out] DWORD *pdwMDRequiredBufferSize); HRESULT OpenKey([in] METADATA_HANDLE hMDHandle, [unique, in, string] LPCWSTR pszMDPath, [in] DWORD dwMDAccessRequested, [in] DWORD dwMDTimeOut, [out] PMETADATA_HANDLE phMDNewHandle); HRESULT CloseKey([in] METADATA_HANDLE hMDHandle); HRESULT ChangePermissions([in] METADATA_HANDLE hMDHandle, [in] DWORD dwMDTimeOut, [in] DWORD dwMDAccessRequested); HRESULT SaveData(); HRESULT GetHandleInfo([in] METADATA_HANDLE hMDHandle, [out] PMETADATA_HANDLE_INFO pmdhiInfo); HRESULT GetSystemChangeNumber([out] DWORD *pdwSystemChangeNumber); HRESULT GetDataSetNumber([in] METADATA_HANDLE hMDHandle, [unique, in, string] LPCWSTR pszMDPath, [out] DWORD *pdwMDDataSetNumber); HRESULT SetLastChangeTime([in] METADATA_HANDLE hMDHandle, [unique, in, string] LPCWSTR pszMDPath, [in] PFILETIME pftMDLastChangeTime, [in] BOOL bLocalTime); HRESULT GetLastChangeTime([in] METADATA_HANDLE hMDHandle, [unique, in, string] LPCWSTR pszMDPath, [out] PFILETIME pftMDLastChangeTime, [in] BOOL bLocalTime); [local, restricted] HRESULT KeyExchangePhase1(); [local, restricted] HRESULT KeyExchangePhase2(); [call_as(KeyExchangePhase1)] HRESULT R_KeyExchangePhase1( [unique, in] struct _IIS_CRYPTO_BLOB *pClientKeyExchangeKeyBlob, [unique, in] struct _IIS_CRYPTO_BLOB *pClientSignatureKeyBlob, [out] struct _IIS_CRYPTO_BLOB **ppServerKeyExchangeKeyBlob, [out] struct _IIS_CRYPTO_BLOB **ppServerSignatureKeyBlob, [out] struct _IIS_CRYPTO_BLOB **ppServerSessionKeyBlob ); [call_as(KeyExchangePhase2)] HRESULT R_KeyExchangePhase2( [unique, in] struct _IIS_CRYPTO_BLOB *pClientSessionKeyBlob, [unique, in] struct _IIS_CRYPTO_BLOB *pClientHashBlob, [out] struct _IIS_CRYPTO_BLOB **ppServerHashBlob ); HRESULT Backup( [unique, in, string] LPCWSTR pszMDBackupLocation, [in] DWORD dwMDVersion, [in] DWORD dwMDFlags); HRESULT Restore( [unique, in, string] LPCWSTR pszMDBackupLocation, [in] DWORD dwMDVersion, [in] DWORD dwMDFlags); HRESULT EnumBackups( [in, out, size_is(ADMINDATA_MAX_NAME_LEN)] LPWSTR pszMDBackupLocation, [out] DWORD *pdwMDVersion, [out] PFILETIME pftMDBackupTime, [in] DWORD dwMDEnumIndex); HRESULT DeleteBackup( [unique, in, string] LPCWSTR pszMDBackupLocation, [in] DWORD dwMDVersion); HRESULT UnmarshalInterface( [out] IMSAdminBaseW **piadmbwInterface ); [local, restricted] HRESULT GetServerGuid(); [call_as(GetServerGuid)] HRESULT R_GetServerGuid( [out] GUID *pServerGuid ); }; [ object, uuid(8298d101-f992-43b7-8eca-5052d885b995), pointer_default(unique) ] interface IMSAdminBase2W : IMSAdminBaseW { // Interfaces HRESULT BackupWithPasswd( [unique, in, string] LPCWSTR pszMDBackupLocation, [in] DWORD dwMDVersion, [in] DWORD dwMDFlags, [unique, in, string] LPCWSTR pszPasswd); HRESULT RestoreWithPasswd( [unique, in, string] LPCWSTR pszMDBackupLocation, [in] DWORD dwMDVersion, [in] DWORD dwMDFlags, [unique, in, string] LPCWSTR pszPasswd); HRESULT Export( [unique, in, string] LPCWSTR pszPasswd, [unique, in, string] LPCWSTR pszFileName, [unique, in, string] LPCWSTR pszSourcePath, [in] DWORD dwMDFlags); HRESULT Import( [unique, in, string] LPCWSTR pszPasswd, [unique, in, string] LPCWSTR pszFileName, [unique, in, string] LPCWSTR pszSourcePath, [unique, in, string] LPCWSTR pszDestPath, [in] DWORD dwMDFlags); HRESULT RestoreHistory( [unique, in, string] LPCWSTR pszMDHistoryLocation, [in] DWORD dwMDMajorVersion, [in] DWORD dwMDMinorVersion, [in] DWORD dwMDFlags); HRESULT EnumHistory( [in, out, size_is(ADMINDATA_MAX_NAME_LEN)] LPWSTR pszMDHistoryLocation, [out] DWORD *pdwMDMajorVersion, [out] DWORD *pdwMDMinorVersion, [out] PFILETIME pftMDHistoryTime, [in] DWORD dwMDEnumIndex); }; [ object, uuid(f612954d-3b0b-4c56-9563-227b7be624b4), pointer_default(unique) ] interface IMSAdminBase3W : IMSAdminBase2W { HRESULT GetChildPaths( [in] METADATA_HANDLE hMDHandle, [unique, in, string] LPCWSTR pszMDPath, [in] DWORD cchMDBufferSize, [in, out, unique, size_is(cchMDBufferSize)] WCHAR *pszBuffer, [in, out, unique] DWORD *pcchMDRequiredBufferSize); }; // // IID_IMSImpExpHelp_W // [ object, uuid(29FF67FF-8050-480f-9F30-CC41635F2F9D), pointer_default(unique) ] interface IMSImpExpHelpW:IUnknown { HRESULT EnumeratePathsInFile ( [unique, in, string] LPCWSTR pszFileName, [unique, in, string] LPCWSTR pszKeyType, [in] DWORD dwMDBufferSize, [in, out, unique, size_is(dwMDBufferSize)] WCHAR *pszBuffer, [out] DWORD *pdwMDRequiredBufferSize); } // // IID_IMSAdminBaseSink_W // [ object, uuid(A9E69612-B80D-11d0-B9B9-00A0C922E750), async_uuid(A9E69613-B80D-11d0-B9B9-00A0C922E750), pointer_default(unique) ] interface IMSAdminBaseSinkW:IUnknown { HRESULT SinkNotify( [in] DWORD dwMDNumElements, [in, size_is(dwMDNumElements)] MD_CHANGE_OBJECT_W pcoChangeList[]); HRESULT ShutdownNotify(); } cpp_quote("#endif")