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.

419 lines
13 KiB

  1. /*++
  2. � 1998 Seagate Software, Inc. All rights reserved.
  3. Module Name:
  4. HsmAdmin.idl
  5. Abstract:
  6. IDL source for HSM Admin SnapIn.
  7. Author:
  8. Rohde Wakefield [rohde] 04-Mar-1997
  9. Revision History:
  10. --*/
  11. // Standard types
  12. import "oaidl.idl";
  13. import "comcat.idl";
  14. import "mmc.idl";
  15. import "hsmeng.idl";
  16. import "rmsint.idl";
  17. import "fsaint.idl";
  18. // Necessary for OLE Automation support
  19. import "ocidl.idl";
  20. interface ISakNode;
  21. interface ISakWizard;
  22. //
  23. // Need a type to wrap MMC handles since these are in flux
  24. //
  25. typedef LONG_PTR RS_NOTIFY_HANDLE;
  26. typedef LONG_PTR RS_WIN32_HANDLE;
  27. typedef LONG_PTR RS_PCREATE_HANDLE;
  28. typedef LONG_PTR RS_PRIVATE_DATA;
  29. //------------------------------------------------------------------------
  30. //
  31. // ISakSnapAsk
  32. //
  33. // This is an interface that any UI node can use to get information from
  34. // the snapin about high-level snapin stuff
  35. //
  36. //------------------------------------------------------------------------
  37. [
  38. object,
  39. uuid(4E769F52-5512-11d0-8F99-00A0C9190447)
  40. ]
  41. interface ISakSnapAsk : IUnknown
  42. {
  43. HRESULT GetNodeOfType([in] REFGUID nodetype, [out] ISakNode** ppNode);
  44. HRESULT RefreshNode([in] ISakNode* pUnkNode);
  45. HRESULT ShowPropertySheet([in] ISakNode* pUnkNode, [in] IDataObject *pDataObject, [in] int initialPage);
  46. HRESULT UpdateAllViews ([in] ISakNode* pUnkNode);
  47. HRESULT GetHsmServer([out] IHsmServer** ppHsmServer);
  48. HRESULT GetRmsServer([out] IRmsServer** ppRmsServer);
  49. HRESULT GetFsaServer([out] IFsaServer** ppFsaServer);
  50. HRESULT GetHsmName([out, string] OLECHAR ** pszName);
  51. HRESULT GetState();
  52. HRESULT Disable( [in] BOOL Disabled );
  53. HRESULT IsDisabled( );
  54. HRESULT CreateWizard( [in] ISakWizard * pWizard );
  55. HRESULT DetachFromNode( [in] ISakNode* pNode );
  56. };
  57. //------------------------------------------------------------------------
  58. //
  59. // ISakNode
  60. //
  61. //------------------------------------------------------------------------
  62. [
  63. object,
  64. uuid(C4F67F02-119C-11D0-8070-00A0C905F098)
  65. ]
  66. interface ISakNode : IUnknown
  67. {
  68. HRESULT InitNode( [in] ISakSnapAsk* pSakSnapAsk, [in] IUnknown* pHsmObj, [in] ISakNode* pParent );
  69. HRESULT TerminateNode( void );
  70. HRESULT GetHsmObj( [out] IUnknown** ppHsmObj );
  71. HRESULT GetNodeType( [out] GUID *pGuid );
  72. HRESULT FindNodeOfType( [in] REFGUID nodetype, [out] ISakNode** ppNode );
  73. HRESULT GetPrivateData( [out] RS_PRIVATE_DATA* pData );
  74. HRESULT SetPrivateData( [in] RS_PRIVATE_DATA Data );
  75. HRESULT GetEnumState( [out] BOOL* pState );
  76. HRESULT SetEnumState( [in] BOOL EnumState );
  77. HRESULT GetScopeID( [out] HSCOPEITEM* pId );
  78. HRESULT SetScopeID( [in] HSCOPEITEM Id );
  79. HRESULT GetParent( [out] ISakNode ** ppParent );
  80. HRESULT IsContainer( );
  81. HRESULT CreateChildren( );
  82. HRESULT EnumChildren( [out] IEnumUnknown ** ppEnum );
  83. HRESULT DeleteChildren( );
  84. HRESULT DeleteAllChildren( );
  85. HRESULT ChildrenAreValid( );
  86. HRESULT InvalidateChildren( );
  87. HRESULT HasDynamicChildren( );
  88. HRESULT IsValid( );
  89. HRESULT EnumChildDisplayProps( [out] IEnumString ** ppEnum );
  90. HRESULT EnumChildDisplayTitles( [out] IEnumString ** ppEnum );
  91. HRESULT EnumChildDisplayPropWidths( [out] IEnumString ** ppEnum );
  92. HRESULT InvokeCommand( [in] SHORT sCmd, [in] IDataObject *pDataObject );
  93. HRESULT GetContextMenu( [in] BOOL bMultiSelect, [out] HMENU *phMenu);
  94. HRESULT GetMenuHelp( [in] LONG sCmd, [out] BSTR * szHelp );
  95. HRESULT SupportsProperties( [in] BOOL bMultiSelect );
  96. HRESULT SupportsPropertiesNoEngine( );
  97. HRESULT SupportsDelete( [in] BOOL bMultiSelect );
  98. HRESULT SupportsRefresh( [in] BOOL bMultiSelect );
  99. HRESULT SupportsRefreshNoEngine( );
  100. HRESULT AddPropertyPages([in]RS_PCREATE_HANDLE handle, [in] IUnknown* lpPropSheetCallback, [in] IEnumGUID* pEnumObjectId, [in] IEnumUnknown *pEnumUnkNode );
  101. HRESULT ActivateView( [in] OLE_HANDLE hWnd );
  102. HRESULT RefreshObject( );
  103. HRESULT DeleteObject( );
  104. HRESULT GetScopeOpenIcon ([in] BOOL bOK, [out] int* pIconIndex);
  105. HRESULT GetScopeCloseIcon ([in] BOOL bOK, [out] int* pIconIndex);
  106. HRESULT GetResultIcon ([in] BOOL bOK, [out] int* pIconIndex);
  107. HRESULT GetObjectId ([out] GUID *objectId);
  108. HRESULT SetObjectId ([in] GUID objectId);
  109. HRESULT SetupToolbar ([in] IToolbar *pToolbar );
  110. HRESULT HasToolbar ( );
  111. HRESULT OnToolbarButtonClick ([in] IDataObject *pDataObject, [in] LONG cmdId );
  112. };
  113. //------------------------------------------------------------------------
  114. //
  115. // ISakNodeProp
  116. //
  117. //------------------------------------------------------------------------
  118. [
  119. object,
  120. uuid(C4F67F03-119C-11D0-8070-00A0C905F098),
  121. dual
  122. ]
  123. interface ISakNodeProp : IDispatch
  124. {
  125. [propget]
  126. HRESULT DisplayName( [out, retval, string] BSTR *pszName );
  127. [propput]
  128. HRESULT DisplayName( [in] BSTR pszName );
  129. [propget]
  130. HRESULT DisplayName_SortKey( [out, retval, string] BSTR *pszName );
  131. [propput]
  132. HRESULT DisplayName_SortKey( [in] BSTR pszName );
  133. [propget]
  134. HRESULT Type( [out, retval, string] BSTR *pszType );
  135. [propput]
  136. HRESULT Type( [in] BSTR pszType );
  137. [propget]
  138. HRESULT Type_SortKey( [out, retval, string] BSTR *pszType );
  139. [propget]
  140. HRESULT Description( [out, retval, string] BSTR *pszDesc );
  141. [propput]
  142. HRESULT Description( [in] BSTR pszDesc );
  143. [propget]
  144. HRESULT Description_SortKey( [out, retval, string] BSTR *pszName );
  145. };
  146. //------------------------------------------------------------------------
  147. //
  148. // IMsDataObject
  149. //
  150. //------------------------------------------------------------------------
  151. [
  152. object,
  153. uuid(374ba600-3aa0-11d1-b990-00a0c9190447)
  154. ]
  155. interface IMsDataObject : IUnknown
  156. {
  157. HRESULT AddNode ( [in] ISakNode *pNode );
  158. HRESULT GetNodeEnumerator ( [out] IEnumUnknown ** ppEnum );
  159. HRESULT GetObjectIdEnumerator ( [out] IEnumGUID ** ppEnumObjectId );
  160. };
  161. //------------------------------------------------------------------------
  162. //
  163. // ILibrary - keep this around as an example,
  164. // allthough it is not currently used.
  165. //
  166. //------------------------------------------------------------------------
  167. [
  168. object,
  169. uuid(A00226E1-1B0D-11d0-8070-00A0C905F098),
  170. dual,
  171. pointer_default(unique)
  172. ]
  173. interface ICartridge : ISakNodeProp
  174. {
  175. [propget]
  176. HRESULT MediaTypeP( [out, retval, string] BSTR *pszValue );
  177. [propget]
  178. HRESULT CapacityP( [out, retval, string] BSTR *pszValue );
  179. [propget]
  180. HRESULT CapacityP_SortKey( [out, retval, string] BSTR *pszValue );
  181. [propget]
  182. HRESULT FreeSpaceP( [out, retval, string] BSTR *pszValue );
  183. [propget]
  184. HRESULT FreeSpaceP_SortKey( [out, retval, string] BSTR *pszValue );
  185. [propget]
  186. HRESULT StatusP( [out, retval, string] BSTR *pszValue );
  187. [propget]
  188. HRESULT StatusP_SortKey( [out, retval, string] BSTR *pszValue );
  189. [propget]
  190. HRESULT CopySet1P( [out, retval, string] BSTR *pszValue );
  191. [propget]
  192. HRESULT CopySet1P_SortKey( [out, retval, string] BSTR *pszValue );
  193. [propget]
  194. HRESULT CopySet2P( [out, retval, string] BSTR *pszValue );
  195. [propget]
  196. HRESULT CopySet2P_SortKey( [out, retval, string] BSTR *pszValue );
  197. [propget]
  198. HRESULT CopySet3P( [out, retval, string] BSTR *pszValue );
  199. [propget]
  200. HRESULT CopySet3P_SortKey( [out, retval, string] BSTR *pszValue );
  201. }
  202. //------------------------------------------------------------------------
  203. //
  204. // IManVolProp
  205. //
  206. //------------------------------------------------------------------------
  207. [
  208. object,
  209. uuid(EAA46600-E736-11D0-B988-00A0C9190447),
  210. dual,
  211. pointer_default(unique)
  212. ]
  213. interface IManVolProp : ISakNodeProp
  214. {
  215. [propget]
  216. HRESULT DesiredFreeSpaceP( [out, retval, string] BSTR *pszValue );
  217. [propget]
  218. HRESULT DesiredFreeSpaceP_SortKey( [out, retval, string] BSTR *pszValue );
  219. [propget]
  220. HRESULT MinFileSizeKb( [out, retval, string] BSTR *pszValue );
  221. [propget]
  222. HRESULT AccessDays ( [out, retval, string] BSTR *pszValue );
  223. [propget]
  224. HRESULT FreeSpaceP( [out, retval, string] BSTR *pszValue );
  225. [propget]
  226. HRESULT Capacity( [out, retval, string] BSTR *pszValue );
  227. [propget]
  228. HRESULT Capacity_SortKey( [out, retval, string] BSTR *pszValue );
  229. [propget]
  230. HRESULT FreeSpace( [out, retval, string] BSTR *pszValue );
  231. [propget]
  232. HRESULT FreeSpace_SortKey( [out, retval, string] BSTR *pszValue );
  233. [propget]
  234. HRESULT Premigrated( [out, retval, string] BSTR *pszValue );
  235. [propget]
  236. HRESULT Truncated( [out, retval, string] BSTR *pszValue );
  237. }
  238. //------------------------------------------------------------------------
  239. //
  240. // ISakWizard
  241. //
  242. // This is an interface that is used to create the a wizard
  243. //
  244. //
  245. //------------------------------------------------------------------------
  246. [
  247. object,
  248. uuid(4E769F53-5512-11d0-8F99-00A0C9190447)
  249. ]
  250. interface ISakWizard : IUnknown
  251. {
  252. HRESULT AddWizardPages([in] RS_PCREATE_HANDLE Handle,
  253. [in] IUnknown* pPropSheetCallback,
  254. [in] ISakSnapAsk* pSakSnapAsk );
  255. HRESULT GetWatermarks([out] HBITMAP* pWatermark,
  256. [out] HBITMAP* pHeader,
  257. [out] HPALETTE* pPalette,
  258. [out] BOOL* pStretch);
  259. HRESULT GetTitle( [out, string] OLECHAR ** pTitle );
  260. };
  261. //------------------------------------------------------------------------
  262. //
  263. // LIBID_HSMADMINLib - Type Library
  264. //
  265. // Necessary both for the dispatch interfaces (the generated .tlb file)
  266. // and for the class ids (in _i.c file). This section defines the type
  267. // library, and all the COM objects that this library contains (nodes
  268. // in the HSM system.
  269. //
  270. //------------------------------------------------------------------------
  271. [
  272. uuid(C4F67F00-119C-11D0-8070-00A0C905F098),
  273. version(1.0)
  274. ]
  275. library HSMADMINLib
  276. {
  277. importlib("stdole2.tlb");
  278. [
  279. uuid(0B9A3960-8C3E-11d0-B797-00A02488FCDE),
  280. ]
  281. coclass HsmAdminDataSnapin
  282. {
  283. [default] interface IUnknown;
  284. };
  285. [
  286. uuid(AB926900-77F8-11d1-B9A0-00A0C9190447),
  287. ]
  288. coclass HsmAdminDataExtension
  289. {
  290. [default] interface IUnknown;
  291. };
  292. [
  293. uuid(A6CB8422-7EB8-11d0-8FC3-00A0C9190447),
  294. ]
  295. coclass HsmAdmin
  296. {
  297. [default] interface IUnknown;
  298. };
  299. [
  300. uuid(F7974E22-6823-11d0-8FA3-00A0C9190447),
  301. ]
  302. coclass CUiCar
  303. {
  304. [default] interface ICartridge;
  305. };
  306. [
  307. uuid(DEAAB3B2-8AAB-11d0-8FCD-00A0C9190447),
  308. ]
  309. coclass CUiMedSet
  310. {
  311. [default] interface ISakNodeProp;
  312. };
  313. [
  314. uuid(F30A9FD3-1BC4-11d0-964E-00A0C905F099),
  315. ]
  316. coclass CUiManVolLst
  317. {
  318. [default] interface IManVolProp;
  319. };
  320. [
  321. uuid(D82438F1-1C60-11d0-964E-00A0C905F099),
  322. ]
  323. coclass CUiHsmCom
  324. {
  325. [default] interface ISakNodeProp;
  326. };
  327. [
  328. uuid(D82438F4-1C60-11d0-964E-00A0C905F099),
  329. ]
  330. coclass CUiManVol
  331. {
  332. [default] interface ISakNodeProp;
  333. };
  334. [
  335. uuid(E1141BAB-08F6-11D1-B98A-00A0C9190447),
  336. helpstring("About Class")
  337. ]
  338. coclass CAbout
  339. {
  340. [default] interface IUnknown;
  341. };
  342. };