/////////////////////////////////////////////////////////////////////////// // // Copyright(C) 1999 Microsoft Corporation all rights reserved. // // Module: elementmgr.idl // // Project: Chameleon // // Description: Chameleon UI Element Retriever IDL // // Log: // // When Who What // ---- --- ---- // 02/08/1999 TLP Initial Version // /////////////////////////////////////////////////////////////////////////////// import "oaidl.idl"; import "ocidl.idl"; ////////////////////////////////////////////////////////////////////////////// // // The following registry structure is assumed: // // HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ElementMgr // // WebElementDefinitions // | // - ElementDefinition1 // | | // | - Property1 // | | // | - PropertyN // | // - ElementDefinition2 // | | // | - Property1 // | | // | - PropertyN // | // - ElementDefinitionN // | // - Property1 // | // - PropertyN // // Each element definition contains the following properties: // // 1) "Container" - Container that holds this element // 2) "Merit" - Order of element in the container starting from 1 (value of 0 means no order specified) // 3) "IsEmbedded" - Set to 1 to indicate that the element is embedded - Otherwise element is a link // 4) "ObjectClass - Class name of the related WBEM class (optional property) // 5) "ObjectKey" - Instance name of the related WBEM class (optional property) // 6) "URL" - URL for the page when the associated link is selected // 7) "CaptionRID" - Resource ID for the element caption // 8) "DescriptionRID" - Resource ID for the element link description // 9) "ElementGraphic" - Graphic (file) associated with the element (bitmap, icon, etc.) // ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// // Interface exposed by Web Elements (Definitions and Objects) ////////////////////////////////////////////////////////////////////////// [ object, uuid(0EFC4090-C445-11D2-90BA-00AA00A71DCA), dual, helpstring("IWebElement Interface"), pointer_default(unique) ] interface IWebElement : IDispatch { [id(1)] HRESULT GetProperty( [in] BSTR bstrName, [out, retval] VARIANT* pValue ); }; ////////////////////////////////////////////////////////////////////////// // Interface exposed by the Web Element Retriever ////////////////////////////////////////////////////////////////////////// [ object, uuid(8C5F0530-C445-11D2-90BA-00AA00A71DCA), dual, helpstring("IWebElementRetriever Interface"), pointer_default(unique) ] interface IWebElementRetriever : IDispatch { [public] typedef enum _WEB_ELEMENT_TYPE { WEB_ELEMENT_TYPE_DEFINITION, WEB_ELEMENT_TYPE_PAGE_OBJECT } WEB_ELEMENT_TYPE; [id(1)] HRESULT GetElements( [in] LONG lWebElementType, [in] BSTR bstrContainerName, [out, retval] IDispatch** ppElementEnum ); [id(2)] HRESULT Initialize (); [id(3)] HRESULT Shutdown (); }; ////////////////////////////////////////////////////////////////////////// // Interface exposed by Web Elements (Definitions and Objects) ////////////////////////////////////////////////////////////////////////// [ object, uuid(e64b13d0-c611-11d2-bf1e-00105a1f3461), dual, helpstring("IWebElementEnum Interface"), pointer_default(unique) ] interface IWebElementEnum : IDispatch { [propget, id (1)] HRESULT Count([out,retval] LONG *plCount); [id(DISPID_VALUE)] HRESULT Item ([in] VARIANT* Name, [out, retval] IDispatch** pItem); [propget, id(DISPID_NEWENUM)] HRESULT _NewEnum([out,retval] IUnknown** pEnumVARIANT); }; ////////////////////////////////////////////////////////////////////////// [ uuid(FEC47820-C444-11D2-90BA-00AA00A71DCA), version(1.0), helpstring("Microsoft Server Appliance Element Manager 1.0 Type Library") ] library ELEMENTMGRLib { importlib("stdole32.tlb"); importlib("stdole2.tlb"); [ uuid(9BCEA010-C445-11D2-90BA-00AA00A71DCA), helpstring("ElementRetriever Class") ] coclass ElementRetriever { [default] interface IWebElementRetriever; }; interface IWebElement; // Define this dispatch interface under "Interfaces" interface IWebElementEnum; };