xpmgr/BuildTools/Include/tspubplugincom.idl

52 lines
2.2 KiB
Plaintext

import "oaidl.idl";
import "ocidl.idl";
#define MAX_ALIAS_SIZE 256
#define MAX_FILE_EXTENSION_SIZE 24
#define MAX_PLUGIN_NAME_SIZE 256
#define MAX_RESOURCETYPE_SIZE 256
#define MAX_RESOURCELOCATION_SIZE 256
#define MAX_RESOURCELOCATION_SIZE 256
#define MAX_ENDPOINT_SIZE 256
// Resource types
#define RESOURCE_TYPE_APPLICATION 1
#define RESOURCE_TYPE_DESKTOP 2
[
object,
uuid(70C04B05-F347-412B-822F-36C99C54CA45),
helpstring("ItsPubPlugin Interface"),
pointer_default(unique)
]
interface ItsPubPlugin : IUnknown{
typedef struct {
WCHAR alias[MAX_ALIAS_SIZE];
WCHAR name[MAX_PLUGIN_NAME_SIZE];
[string, unique] WCHAR *resourceFileContents;
WCHAR fileExtension[MAX_FILE_EXTENSION_SIZE];
WCHAR resourcePluginType[MAX_PLUGIN_NAME_SIZE];
boolean isDiscoverable;
long resourceType;
unsigned long pceIconSize;
[size_is(pceIconSize)] byte *iconContents;
unsigned long pcePluginBlobSize;
[size_is(pcePluginBlobSize)] byte *blobContents;
} pluginResource;
HRESULT GetResourceList([in] LPCWSTR userID, [out] LONG *pceAppListSize, [out] pluginResource ** resourceList);
HRESULT GetResource([in] LPCWSTR alias, LONG flags, [out] pluginResource * resource);
[helpstring("Returns time the cache was last updated in FILETIME format")]
HRESULT GetCacheLastUpdateTime([out] unsigned long long * lastUpdateTime);
[propget] HRESULT pluginName([out, retval] BSTR * pVal);
[propget] HRESULT pluginVersion([out, retval] BSTR * pVal);
HRESULT ResolveResource(
[out] DWORD *resourceType,
[string, out] wchar_t resourceLocation[MAX_RESOURCELOCATION_SIZE],
[string, out] wchar_t endPointName[MAX_ENDPOINT_SIZE],
[in, string] wchar_t * userID,
[in, string] wchar_t * alias
);
};