cpp_quote("#include ") #pragma region Desktop Family cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") import "oaidl.idl"; import "ocidl.idl"; import "tspubplugincom.idl"; #define MAX_FILE_ASSOC_EXTENSION_SIZE 256 #define MAX_ENDPOINT_SIZE 256 [ object, uuid(FA4CE418-AAD7-4ec6-BAD1-0A321BA465D5), helpstring("ItsPubPlugin2 Interface"), pointer_default(unique) ] interface ItsPubPlugin2 : ItsPubPlugin{ typedef struct { WCHAR extName[MAX_FILE_ASSOC_EXTENSION_SIZE]; boolean primaryHandler; unsigned long pceIconSize; [size_is(pceIconSize)] byte *iconContents; } pluginResource2FileAssociation; typedef [string] WCHAR* pluginFolderName; typedef struct { pluginResource resourceV1; unsigned long pceFileAssocListSize; [size_is(pceFileAssocListSize)] pluginResource2FileAssociation * fileAssocList; [string, unique] WCHAR *securityDescriptor; unsigned long pceFolderListSize; [size_is(pceFolderListSize)] pluginFolderName * folderList; } pluginResource2; HRESULT GetResource2List([in] LPCWSTR userID, [out] LONG *pceAppListSize, [out] pluginResource2 ** resourceList); HRESULT GetResource2([in] LPCWSTR alias, LONG flags, [out] pluginResource2 * resource); typedef enum _TSPUB_PLUGIN_PD_RESOLUTION_TYPE { TSPUB_PLUGIN_PD_QUERY_OR_CREATE = 0, TSPUB_PLUGIN_PD_QUERY_EXISTING = 1 } TSPUB_PLUGIN_PD_RESOLUTION_TYPE; typedef enum _TSPUB_PLUGIN_PD_ASSIGNMENT_TYPE { TSPUB_PLUGIN_PD_ASSIGNMENT_NEW = 0, TSPUB_PLUGIN_PD_ASSIGNMENT_EXISTING = 1 } TSPUB_PLUGIN_PD_ASSIGNMENT_TYPE; HRESULT ResolvePersonalDesktop( [in, string] const wchar_t *userId, [in, string] const wchar_t *poolId, [in] TSPUB_PLUGIN_PD_RESOLUTION_TYPE ePdResolutionType, [out] TSPUB_PLUGIN_PD_ASSIGNMENT_TYPE *pPdAssignmentType, [out, string] wchar_t endPointName[MAX_ENDPOINT_SIZE]); HRESULT DeletePersonalDesktopAssignment( [in, string] const wchar_t *userId, [in, string] const wchar_t *poolId, [in, string] const wchar_t *endpointName); }; cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */") #pragma endregion