/* WARNING: This is auto-generated file. Do not modify, since changes will
 * be lost! Modify the generating script instead.
 */
CreateInstanceFunc							createInstance;
GetInstanceProcAddrFunc						getInstanceProcAddr;
EnumerateInstanceExtensionPropertiesFunc	enumerateInstanceExtensionProperties;
EnumerateInstanceLayerPropertiesFunc		enumerateInstanceLayerProperties;
EnumerateInstanceVersionFunc				enumerateInstanceVersion;
