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

模拟服务器

开发平台:

C/C++

  1. /**********************************************************************/
  2. /**                       Microsoft Windows NT                       **/
  3. /**                Copyright(c) Microsoft Corp., 1997-1999           **/
  4. /**********************************************************************/
  5. /*
  6.     iadmext.h
  7.     This module contains the interface for extensions to the IISADMIN service.
  8.     FILE HISTORY:
  9.     7/8/97      michth      created
  10. */
  11. #ifndef COM_NO_WINDOWS_H
  12. #include "windows.h"
  13. #include "ole2.h"
  14. #endif /*COM_NO_WINDOWS_H*/
  15. #ifndef __iadmext_h__
  16. #define __iadmext_h__
  17. #ifdef __cplusplus
  18. extern "C"{
  19. #endif
  20. /* header files for imported files */
  21. #include "unknwn.h"
  22. #include "objidl.h"
  23. #include "ocidl.h"
  24. /*
  25. The Main Interface. All extensions must support this interface.
  26. */
  27. // {51DFE970-F6F2-11d0-B9BD-00A0C922E750}
  28. DEFINE_GUID(IID_IADMEXT, 0x51dfe970, 0xf6f2, 0x11d0, 0xb9, 0xbd, 0x0, 0xa0, 0xc9, 0x22, 0xe7, 0x50);
  29. /*
  30. InProcess COM Registration. All extensions must write a subkey name by the
  31. CLSID for the above interface under this key in the Registry.
  32. */
  33. #define IISADMIN_EXTENSIONS_REG_KEYA          "SOFTWARE\Microsoft\InetStp\Extensions"
  34. #define IISADMIN_EXTENSIONS_REG_KEYW          L"SOFTWARE\Microsoft\InetStp\Extensions"
  35. #define IISADMIN_EXTENSIONS_REG_KEY           TEXT("SOFTWARE\Microsoft\InetStp\Extensions")
  36. /*
  37. DCOM Registration. CLSIDS for the DCOM interface provided by these extensions will
  38. be written to this key and ID by IISADMIN as a multisz property.
  39. This is intended for use by other applications which need to find out what classid's are
  40. registered.
  41. */
  42. #define IISADMIN_EXTENSIONS_CLSID_MD_KEYA      "LM/IISADMIN/EXTENSIONS/DCOMCLSIDS"
  43. #define IISADMIN_EXTENSIONS_CLSID_MD_KEYW      L"LM/IISADMIN/EXTENSIONS/DCOMCLSIDS"
  44. #define IISADMIN_EXTENSIONS_CLSID_MD_KEY      TEXT("LM/IISADMIN/EXTENSIONS/DCOMCLSIDS")
  45. #define IISADMIN_EXTENSIONS_CLSID_MD_ID       MD_IISADMIN_EXTENSIONS
  46. #ifndef __IADMEXT_INTERFACE_DEFINED__
  47. #define __IADMEXT_INTERFACE_DEFINED__
  48. EXTERN_C const IID IID_IADMEXT;
  49. #if defined(__cplusplus) && !defined(CINTERFACE)
  50.     interface IADMEXT : public IUnknown
  51.     {
  52.     public:
  53.         //
  54.         // All methods below will be called under a thread which has called
  55.         // CoInitializeEx(NULL, COINIT_MULTITHREADED).
  56.         //
  57.         // The IMSAdminBase Object will be available during all of these calls.
  58.         //
  59.         //
  60.         // Initialize will be called by IISADMIN when it initializes.
  61.         //
  62.         virtual HRESULT STDMETHODCALLTYPE Initialize(void) = 0;
  63.         //
  64.         // EnumDcomCLSIDs will be called by IISADMIN when it initializes,
  65.         // and the returned CLSIDs will be written to the metabase at
  66.         // the path IISADMIN_EXTENSIONS_CLSID_MD_KEY.
  67.         //
  68.         virtual HRESULT STDMETHODCALLTYPE EnumDcomCLSIDs(
  69.             /* [size_is][out] */ CLSID *pclsidDcom,
  70.             /* [in] */ DWORD dwEnumIndex) = 0;
  71.         //
  72.         // Terminate will be called by IISADMIN when it terminates.
  73.         //
  74.         virtual HRESULT STDMETHODCALLTYPE Terminate(void) = 0;
  75.     };
  76. #else   /* C style interface */
  77. #endif
  78. #endif  /* __IADMEXT_INTERFACE_DEFINED__ */
  79. #ifdef __cplusplus
  80. }
  81. #endif
  82. #endif // __iadmext_h__