Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

141 lines
4.9 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (c) Microsoft Corporation. All rights reserved.
  5. //
  6. // File:
  7. // immact.idl
  8. //
  9. // Contents:
  10. // Definition of immediate activator interfaces
  11. //
  12. // History:
  13. // VinayKr 10-15-98 Created
  14. //
  15. //--------------------------------------------------------------------------
  16. #ifndef DO_NO_IMPORTS
  17. import "obase.idl";
  18. import "wtypes.idl";
  19. import "objidl.idl";
  20. #endif
  21. // Opaque Data
  22. //--------------------------------------------------------------------------
  23. // An immediate activator supports:
  24. // IStandardActivator
  25. // IOpaqueDataInfo
  26. // ISpecialSystemProperties
  27. //
  28. //--------------------------------------------------------------------------
  29. [
  30. object,
  31. local,
  32. uuid(000001b8-0000-0000-C000-000000000046),
  33. pointer_default(unique)
  34. ]
  35. interface IStandardActivator : IUnknown
  36. {
  37. HRESULT StandardGetClassObject([in] REFCLSID rclsid,
  38. [in] DWORD dwClsCtx,
  39. [in] COSERVERINFO *pServerInfo,
  40. [in] REFIID riid,
  41. [out, iid_is(riid)] void** ppv);
  42. HRESULT StandardCreateInstance([in] REFCLSID Clsid,
  43. [in] IUnknown *punkOuter,
  44. [in] DWORD dwClsCtx,
  45. [in] COSERVERINFO *pServerInfo,
  46. [in] DWORD dwCount,
  47. [in, size_is(dwCount)] MULTI_QI *pResults);
  48. HRESULT StandardGetInstanceFromFile(
  49. [in] COSERVERINFO *pServerInfo,
  50. [in] CLSID *pclsidOverride,
  51. [in] IUnknown *punkOuter,
  52. [in] DWORD dwClsCtx,
  53. [in] DWORD grfMode,
  54. [in] OLECHAR *pwszName,
  55. [in] DWORD dwCount,
  56. [in, size_is(dwCount)] MULTI_QI *pResults);
  57. HRESULT StandardGetInstanceFromIStorage(
  58. [in] COSERVERINFO *pServerInfo,
  59. [in] CLSID *pclsidOverride,
  60. [in] IUnknown *punkOuter,
  61. [in] DWORD dwClsCtx,
  62. [in] IStorage *pstg,
  63. [in] DWORD dwCount,
  64. [in, size_is(dwCount)] MULTI_QI *pResults);
  65. HRESULT Reset();
  66. }
  67. [
  68. object,
  69. local,
  70. uuid(000001A9-0000-0000-C000-000000000046),
  71. pointer_default(unique)
  72. ]
  73. interface IOpaqueDataInfo : IUnknown
  74. {
  75. HRESULT AddOpaqueData([in] OpaqueData *pData);
  76. HRESULT GetOpaqueData([in] REFGUID guid, [out] OpaqueData **pData);
  77. HRESULT DeleteOpaqueData([in] REFGUID guid);
  78. HRESULT GetOpaqueDataCount ([out] ULONG* pulCount);
  79. HRESULT GetAllOpaqueData ([out] OpaqueData** prgData);
  80. }
  81. // Enum value; means "don't use the session id when trying to find
  82. // a suitable server for an activation". Used only in SCM.
  83. typedef enum { INVALID_SESSION_ID = 0xFFFFFFFF } SESSIDTYPES;
  84. [
  85. object,
  86. local,
  87. uuid(000001b9-0000-0000-C000-000000000046),
  88. pointer_default(unique)
  89. ]
  90. interface ISpecialSystemProperties : IUnknown
  91. {
  92. // fRemoteSessionId should be TRUE if the specified session is to be passed
  93. // off-machine. If bUseConsole is TRUE, dwSessionID is ignored.
  94. HRESULT SetSessionId([in] ULONG dwSessionId, [in]BOOL bUseConsole, [in] BOOL fRemoteThisSessionId);
  95. // Gets the current value of the session id. *pdwSessionId should only be
  96. // looked at if *pbUseConsole is FALSE.
  97. HRESULT GetSessionId([out] ULONG *pdwSessionId, [out]BOOL* pbUseConsole);
  98. // Same thing but also gets whether it should remoted off machine or not
  99. HRESULT GetSessionId2([out] ULONG *pdwSessionId, [out]BOOL* pbUseConsole, [out] BOOL* pfRemoteThisSessionId);
  100. // Get/set whether the client thread doing the activation was impersonating or not
  101. HRESULT SetClientImpersonating([in]BOOL fClientImpersonating);
  102. HRESULT GetClientImpersonating([out]BOOL* pfClientImpersonating);
  103. // Set the partition ID
  104. HRESULT SetPartitionId([in] REFGUID guidPartiton);
  105. // Get the partition ID
  106. HRESULT GetPartitionId([out] GUID* pguidPartiton);
  107. // Storage for the ProcessRequestType flag (set by custom activators thru the
  108. // IServerLocationInfo interface)
  109. HRESULT SetProcessRequestType([in] DWORD dwPRT);
  110. HRESULT GetProcessRequestType([out] DWORD* pdwPRT);
  111. // Get and set the clsctx for the original caller
  112. HRESULT SetOrigClsctx([in] DWORD dwClsctx);
  113. HRESULT GetOrigClsctx([out] DWORD* dwClsctx);
  114. // Get and set the default remote authentication level
  115. HRESULT GetDefaultAuthenticationLevel([out] DWORD *pdwAuthnLevel);
  116. HRESULT SetDefaultAuthenticationLevel([in] DWORD dwAuthnLevel);
  117. }