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 <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, ®isteredInterface, FALSE);
return 0;
}]]></ac:plain-text-body></ac:structured-macro>