WG_NAMED_INTERFACE is a helper macro for declaring a proprietary interface that contains a name. These interfaces are typically used within other API's for callbacks.

Use the macro WG_PREPARE_NAMED_INTERFACE to initialise an interface declared with WG_NAMED_INTERFACE.

 

// Declare the interface
WG_NAMED_INTERFACE(FileProviderInterface)
	OpenFileFunc 	OpenFile;
	CloseFileFunc	CloseFile;
};


FileProviderInterface fileProvider;
 
void RegisterFileProvider()
{
	WG_PREPARE_NAMED_INTERFACE(fileProvider, FILE_PROVIDER_UUID, L"My File Provider");
 
	fileProvider.OpenFileFunc = OpenFile;				// Our handler functions
	fileProvider.CloseFileFunc = CloseFile;

	RegisterFileProvider(fileProvider);				// Some API provided by another component


}