overview <p>ComponentInterfaceEntry is the base class for interfaces that are registered with the host framework. They provide the mandatory fields that all interfaces need to support.</p><p>Derive your own interfaces from this and then pass them to&nbsp;<ac:link><ri:page ri:content-title="RegisterInterface" /></ac:link></p> Structure <ac:structured-macro ac:name="code"><ac:plain-text-body><![CDATA[struct ComponentInterfaceEntry { unsigned long dwSize; GUID componentGUID; GUID guid; };]]></ac:plain-text-body></ac:structured-macro> Members <ac:structured-macro ac:name="vardef"><ac:parameter ac:name="Name">dwSize</ac:parameter><ac:parameter ac:name="Type">unsigned long</ac:parameter><ac:parameter ac:name="Style">Member</ac:parameter><ac:parameter ac:name="atlassian-macro-output-type">BLOCK</ac:parameter><ac:rich-text-body><p>The total size of the interface (Derived size) in bytes</p></ac:rich-text-body></ac:structured-macro><ac:structured-macro ac:name="vardef"><ac:parameter ac:name="Name">componentGUID</ac:parameter><ac:parameter ac:name="Type">GUID</ac:parameter><ac:parameter ac:name="Style">Member</ac:parameter><ac:parameter ac:name="atlassian-macro-output-type">BLOCK</ac:parameter><ac:rich-text-body><p>The UUID of the component that is registering this interface.</p><div /></ac:rich-text-body></ac:structured-macro><ac:structured-macro ac:name="vardef"><ac:parameter ac:name="Name">guid</ac:parameter><ac:parameter ac:name="Type">GUID</ac:parameter><ac:parameter ac:name="Style">Member</ac:parameter><ac:parameter ac:name="atlassian-macro-output-type">BLOCK</ac:parameter><ac:rich-text-body><p>The UUID of the interface. Interface UUIDs must be globally unique within all interfaces registered with a particular host.</p></ac:rich-text-body></ac:structured-macro> Remarks None SeeAlso <p><ac:link><ri:page ri:content-title="RegisterInterface" /></ac:link></p><p><ac:link><ri:page ri:content-title="WG_PREPARE_INTERFACE" /></ac:link></p> Examples <ac:structured-macro ac:name="code"><ac:plain-text-body><![CDATA[typedef BOOL (WG_INTERFACE *DoSomethingFunction)(unsigned long someParameter);   WG_COMPONENT_INTERFACE(MyInterface) DoSomethingFunction doSomething; };     BOOL MyDoSomethingImplementation(unsigned long someParameter) { return TRUE; }   static MyInterface registeredInterface; static const GUID MY_INTERFACE_UUID = { 0xb0384b23, 0x2346, 0x1203, { 0xa2, 0xdd, 0x3b, 0x26, 0x8e, 0xd0, 0x43, 0x2 } }; int InitInterfaces(ComponentEntry* Entry) { WG_PREPARE_INTERFACE(registeredInterface, Entry->guid, MY_INTERFACE_UUID); registeredInterface.doSomething = MyDoSomethingImplementation; RegisterInterface(Entry, &registeredInterface, FALSE); return 0; }]]></ac:plain-text-body></ac:structured-macro>