cpp_quote ("/*++") cpp_quote(" ") cpp_quote("Copyright (c) 1997 Microsoft Corporation") cpp_quote(" ") cpp_quote("Module Name: iadm.h") cpp_quote(" ") cpp_quote(" Admin Objects Interfaces") cpp_quote(" ") cpp_quote ("--*/") cpp_quote("#ifndef _ADM_IADM_") cpp_quote("#define _ADM_IADM_") import "mddef.idl"; import "unknwn.idl"; import "wtypes.idl"; import "objidl.idl"; import "ocidl.idl"; import "iiscblob.h"; // Removed by POSTMIDL.SCR after IADM.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_GUID(CLSID_MSAdminBase, 0x88e4ba60, 0x537b, 0x11d0, 0x9b, 0x8e, 0x0, 0xa0, 0xc9, 0x22, 0xe7, 0x3);") cpp_quote("DEFINE_GUID(IID_IMSAdminBase, 0xcba424f0, 0x483a, 0x11d0, 0x9d, 0x2a, 0x0,0xa0, 0xc9, 0x22, 0xe7, 0x3);") cpp_quote("DEFINE_GUID(CLSID_MSAdminBaseExe, 0xdf380700, 0x537d, 0x11d0, 0x9b, 0x8e, 0x0, 0xa0, 0xc9, 0x22, 0xe7, 0x3);") cpp_quote("DEFINE_GUID(CLSID_MSAdmin, 0x668583f0, 0x6fdb, 0x11d0, 0xb9, 0xb0, 0x0, 0xa0, 0xc9, 0x22, 0xe7, 0x50);") cpp_quote("DEFINE_GUID(IID_IMSAdminBaseSink, 0x1e056350, 0x761e, 0x11d0, 0x9b, 0xa1, 0x0, 0xa0, 0xc9, 0x22, 0xe7, 0x03);") cpp_quote("DEFINE_GUID(IID_IMSMetaBase, 0xc1bea50, 0x4fd7, 0x11d0, 0xb9, 0xac, 0x0, 0xa0, 0xc9, 0x22, 0xe7, 0x50);") cpp_quote("DEFINE_GUID(IID_IMSMetaDataItem, 0x3e31f00, 0x627c, 0x11d0, 0xb9, 0xad, 0x0, 0xa0, 0xc9, 0x22, 0xe7, 0x50);") cpp_quote("DEFINE_GUID(IID_IMSMetaKey, 0x34617b10, 0x7fbc, 0x11d0, 0xb9, 0xb1, 0x0, 0xa0, 0xc9, 0x22, 0xe7, 0x50);") //cpp_quote("DEFINE_GUID(DIID_IMSAdminSCRIPT, 0x850f0fa0, 0x4fd5, 0x11d0, 0xb9, 0xac, 0x0, 0xa0, 0xc9, 0x22, 0xe7, 0x50);") cpp_quote("DEFINE_GUID(LIBID_MSAdmin, 0x1b890330, 0x4f09, 0x11d0, 0xb9, 0xac, 0x0, 0xa0, 0xc9, 0x22, 0xe7, 0x50);") cpp_quote("#define GETAdminBaseCLSID(IsService) ((IsService) ? CLSID_MSAdminBase : CLSID_MSAdminBaseExe)") cpp_quote("/* ") cpp_quote("The Main Interface ") cpp_quote("*/ ") [ object, uuid(CBA424F0-483A-11D0-9D2A-00A0C922E703), pointer_default(unique) ] interface IMSAdminBase : IUnknown { // Interfaces HRESULT AddKey([in] METADATA_HANDLE hMDHandle, [unique, in, string] unsigned char *pszMDPath); HRESULT DeleteKey([in] METADATA_HANDLE hMDHandle, [unique, in, string] unsigned char *pszMDPath); HRESULT DeleteChildKeys([in] METADATA_HANDLE hMDHandle, [unique, in, string] unsigned char *pszMDPath); HRESULT EnumKeys([in] METADATA_HANDLE hMDHandle, [unique, in, string] unsigned char *pszMDPath, [out, size_is(ADMINDATA_MAX_NAME_LEN)] unsigned char *pszMDName, [in] DWORD dwMDEnumObjectIndex); HRESULT CopyKey([in] METADATA_HANDLE hMDSourceHandle, [unique, in, string] unsigned char *pszMDSourcePath, [in] METADATA_HANDLE hMDDestHandle, [unique, in, string] unsigned char *pszMDDestPath, [in] BOOL bMDOverwriteFlag, [in] BOOL bMDCopyFlag); HRESULT RenameKey([in] METADATA_HANDLE hMDHandle, [unique, in, string] unsigned char *pszMDPath, [unique, in, string] unsigned char *pszMDNewName); [local] HRESULT SetData([in] METADATA_HANDLE hMDHandle, [unique, in, string] unsigned char *pszMDPath, [in] PMETADATA_RECORD pmdrMDData); [call_as(SetData)] HRESULT R_SetData([in] METADATA_HANDLE hMDHandle, [unique, in, string] unsigned char *pszMDPath, [in] PMETADATA_RECORD pmdrMDData); [local] HRESULT GetData([in] METADATA_HANDLE hMDHandle, [unique, in, string] unsigned char *pszMDPath, [in, out] PMETADATA_RECORD pmdrMDData, [out] DWORD *pdwMDRequiredDataLen); [call_as(GetData)] HRESULT R_GetData([in] METADATA_HANDLE hMDHandle, [unique, in, string] unsigned char *pszMDPath, [in, out] PMETADATA_RECORD pmdrMDData, [out] DWORD *pdwMDRequiredDataLen, [out] struct _IIS_CRYPTO_BLOB **ppDataBlob); HRESULT DeleteData([in] METADATA_HANDLE hMDHandle, [unique, in, string] unsigned char *pszMDPath, [in] DWORD dwMDIdentifier, [in] DWORD dwMDDataType); [local] HRESULT EnumData([in] METADATA_HANDLE hMDHandle, [unique, in, string] unsigned char *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] unsigned char *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] unsigned char *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 *pbBuffer, [out] DWORD *pdwMDRequiredBufferSize); [call_as(GetAllData)] HRESULT R_GetAllData([in] METADATA_HANDLE hMDHandle, [unique, in, string] unsigned char *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] unsigned char *pszMDPath, [in] DWORD dwMDUserType, [in] DWORD dwMDDataType); HRESULT CopyData([in] METADATA_HANDLE hMDSourceHandle, [unique, in, string] unsigned char *pszMDSourcePath, [in] METADATA_HANDLE hMDDestHandle, [unique, in, string] unsigned char *pszMDDestPath, [in] DWORD dwMDAttributes, [in] DWORD dwMDUserType, [in] DWORD dwMDDataType, [in] BOOL bMDCopyFlag); /* HRESULT SetReferenceObject([in] METADATA_HANDLE hMDReferenceHandle, [unique, in, string] unsigned char *pszMDReferencePath, [in] METADATA_HANDLE hMDSubjectHandle, [unique, in, string] unsigned char *pszMDSubjectPath); */ HRESULT OpenKey([in] METADATA_HANDLE hMDHandle, [unique, in, string] unsigned char *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] unsigned char *pszMDPath, [out] DWORD *pdwMDDataSetNumber); HRESULT ReleaseReferenceData([in] DWORD dwMDDataTag); HRESULT SetLastChangeTime([in] METADATA_HANDLE hMDHandle, [unique, in, string] unsigned char *pszMDPath, [in] PFILETIME pftMDLastChangeTime, [in] BOOL bLocalTime); HRESULT GetLastChangeTime([in] METADATA_HANDLE hMDHandle, [unique, in, string] unsigned char *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 ); }; //LIBID_MSAdmin [ uuid(1B890330-4F09-11d0-B9AC-00A0C922E750) , helpstring("IIS Admin Objects Type Library") , lcid(0x0000) , version(1.0) ] library MSAdminTypeLibrary { importlib("STDOLE2.TLB"); [ dual, object, uuid(03E31F00-627C-11d0-B9AD-00A0C922E750), oleautomation ] interface IMSMetaDataItem : IDispatch { [propget, id(0), helpstring("Return Data Identifier.")] HRESULT Identifier( [out, retval] long *pdwIdentifier); [propput, helpstring("Set Data Identifier.")] HRESULT Identifier( [in] long dwIdentifier); [propget, helpstring("Return Data Attributes.")] HRESULT Attributes( [out, retval] long *pdwAttributes); [propput, helpstring("Set Data Attributes.")] HRESULT Attributes( [in] long dwAttributes); [propget, helpstring("Return Inherit Attribute.")] HRESULT InheritAttribute( [out, retval] BOOL *pbInherit); [propput, helpstring("Set Inherit Attribute.")] HRESULT InheritAttribute( [in] BOOL bInherit); [propget, helpstring("Return Partial Path Attribute.")] HRESULT ParialPathAttribute( [out, retval] BOOL *pbParialPath); [propput, helpstring("Get Parial Path Attribute.")] HRESULT PartialPathAttribute( [in] BOOL bPartialPath); [propget, helpstring("Return Secure Attribute.")] HRESULT SecureAttribute( [out, retval] BOOL *pbSecure); [propput, helpstring("Get Secure Attribute.")] HRESULT SecureAttribute( [in] BOOL bSecure); [propget, helpstring("Return Reference Attribute.")] HRESULT ReferenceAttribute( [out, retval] BOOL *pbReference); [propput, helpstring("Get Reference Attribute.")] HRESULT ReferenceAttribute( [in] BOOL bReference); [propget, helpstring("Return Data User Type.")] HRESULT UserType( [out, retval] long *pdwUserType); [propput, helpstring("Set Data User Type.")] HRESULT UserType( [in] long dwUserType); [propget, helpstring("Return Data Type.")] HRESULT DataType( [out, retval] long *pdwDataType); [propput, helpstring("Set Data Type.")] HRESULT DataType( [in] long dwDataType); // [propget, helpstring("Return Data Length.")] // HRESULT GetDataLen( // [out, retval] long *pdwDataLen); // [propput, helpstring("Set Data Length.")] // HRESULT SetDataLen( // [in] long dwDataLen); [propget, helpstring("Return Data.")] HRESULT Value( [out, retval] VARIANTARG *pvaData); [propput, helpstring("Set Data.")] HRESULT Value( [in] VARIANTARG *pvaData); } // {34617B10-7FBC-11d0-B9B1-00A0C922E750} //static const GUID <> = //{ 0x34617b10, 0x7fbc, 0x11d0, { 0xb9, 0xb1, 0x0, 0xa0, 0xc9, 0x22, 0xe7, 0x50 } }; [ dual, object, uuid(34617B10-7FBC-11d0-B9B1-00A0C922E750), oleautomation ] interface IMSMetaKey : IDispatch { HRESULT AddKey([in, optional] VARIANTARG *pvaPath); HRESULT DeleteKey([in, optional] VARIANTARG *pvaPath); HRESULT DeleteChildKeys([in, optional] VARIANTARG *pvaPath); HRESULT EnumKeys([out] VARIANTARG *pvaName, [in] long dwEnumObjectIndex, [in, optional] VARIANTARG *pvaPath); [propget, helpstring("Return Data Object.")] HRESULT DataItem([out, retval] IMSMetaDataItem **ppmdiData); HRESULT SetData([in] IMSMetaDataItem *pmdiData, [in, optional] VARIANTARG *pvaPath); HRESULT GetData([out][in] IMSMetaDataItem **ppmdiData, [in, optional] VARIANTARG *pvaPath); HRESULT DeleteData([in] long dwIdentifier, [in] long dwDataType, [in, optional] VARIANTARG *pvaPath); HRESULT EnumData([in, out] IMSMetaDataItem **ppmdiData, [in] long dwEnumDataIndex, [in, optional] VARIANTARG *pvaPath); HRESULT GetAllData([in] long dwAttributes, [in] long dwUserType, [in] long dwDataType, [out] long *pdwDataSetNumber, [out] VARIANTARG *pvaDataObjectsArray, [in, optional] VARIANTARG *pvaPath); HRESULT DeleteAllData([in] long dwUserType, [in] long dwDataType, [in, optional] VARIANTARG *pvaPath); HRESULT OpenKey([in] long dwAccessRequested, [in, optional] VARIANTARG vaTimeOut, [in, optional] VARIANTARG *pvaPath, [out, retval] IMSMetaKey **ppmkKey); HRESULT Close(); HRESULT ChangePermissions([in] long dwAccessRequested, [in, optional] VARIANTARG vaTimeOut); HRESULT GetKeyInfo([out] long *dwPermissions, [out] long *dwSystemChangeNumber); HRESULT GetDataSetNumber([out] long *pdwDataSetNumber, [in, optional] VARIANTARG *pvaPath); HRESULT SetLastChangeTime([in] DATE dLastChangeTime, [in, optional] VARIANTARG vaLocalTime, [in, optional] VARIANTARG *pvaPath); HRESULT GetLastChangeTime([out] DATE *pdLastChangeTime, [in, optional] VARIANTARG vaLocalTime, [in, optional] VARIANTARG *pvaPath); } [ dual, object, uuid(0C1BEA50-4FD7-11d0-B9AC-00A0C922E750), oleautomation ] interface IMSMetaBase : IDispatch { HRESULT CopyKey([in] IMSMetaKey *pmkSourceKey, [in] IMSMetaKey *pmkDestKey, [in] BOOL bOverwriteFlag, [in] BOOL bCopyFlag, [in, optional] VARIANTARG *pvaSourcePath, [in, optional] VARIANTARG *pvaDestPath); HRESULT CopyData([in] IMSMetaKey *pmkSourceKey, [in] IMSMetaKey *pmkDestKey, [in] long dwAttributes, [in] long dwUserType, [in] long dwDataType, [in] BOOL bCopyFlag, [in, optional] VARIANTARG *pvaSourcePath, [in, optional] VARIANTARG *pvaDestPath); HRESULT OpenKey([in] long dwAccessRequested, [in, optional] VARIANTARG vaTimeOut, [in, optional] VARIANTARG *pvaPath, [out, retval] IMSMetaKey **ppmkKey); HRESULT FlushData(); HRESULT GetSystemChangeNumber([out] VARIANTARG *pdwSystemChangeNumber); } /* //DIID_IMSAdminSCRIPT [ uuid(850F0FA0-4FD5-11d0-B9AC-00A0C922E750) , helpstring("Definition of dispinterface DIMDCOM") ] dispinterface DIMDCOMSCRIPT { interface IMDCOMSCRIPT; } */ //CLSID_MSAdminBase [ uuid(668583F0-6FDB-11d0-B9B0-00A0C922E750) , helpstring("IIS Admin Objects Type Information") ] coclass MSAdmin { interface IMSMetaBase; interface IMSMetaKey; interface IMSMetaDataItem; // interface IMSAdmin; } }; // // IID_IMSAdminBaseSink // [ object, uuid(1E056350-761E-11d0-9BA1-00A0C922E703), pointer_default(unique) ] interface IMSAdminBaseSink:IUnknown { HRESULT SinkNotify( [in] DWORD dwMDNumElements, [in, size_is(dwMDNumElements)] MD_CHANGE_OBJECT pcoChangeList[]); } cpp_quote("#endif")