home *** CD-ROM | disk | FTP | other *** search
/ PC Format (South-Africa) 2001 May / PCFMay2001.iso / Xenon / C++ / FreeCommandLineTools.exe / Include / iadmext.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-01-31  |  3.4 KB  |  113 lines

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