You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
312 lines
16 KiB
312 lines
16 KiB
|
|
cpp_quote("#ifndef _MD_IMD_")
|
|
cpp_quote("#define _MD_IMD_")
|
|
|
|
import "unknwn.idl";
|
|
import "wtypes.idl";
|
|
import "objidl.idl";
|
|
import "ocidl.idl";
|
|
import "mddef.idl";
|
|
cpp_quote("/* ")
|
|
cpp_quote("The Main Interface ")
|
|
cpp_quote("*/ ")
|
|
|
|
#define METADATA_MAX_NAME_LEN 256
|
|
|
|
cpp_quote("DEFINE_GUID(CLSID_MDCOM, 0xba4e57f0, 0xfab6, 0x11cf, 0x9d, 0x1a, 0x0, 0xaa, 0x0, 0xa7, 0xd, 0x51);")
|
|
cpp_quote("DEFINE_GUID(IID_IMDCOM, 0xc1aa48c0, 0xfacc, 0x11cf, 0x9d, 0x1a, 0x0, 0xaa, 0x0, 0xa7, 0xd, 0x51);")
|
|
cpp_quote("DEFINE_GUID(IID_NSECOM, 0x4810a750, 0x4318, 0x11d0, 0xa5, 0xc8, 0x0, 0xa0, 0xc9, 0x22, 0xe7, 0x52);")
|
|
cpp_quote("DEFINE_GUID(CLSID_NSEPMCOM, 0x05dc3bb0, 0x4337, 0x11d0, 0xa5, 0xc8, 0x0, 0xa0, 0xc9, 0x22, 0xe7, 0x52);")
|
|
cpp_quote("DEFINE_GUID(CLSID_MDCOMEXE, 0xba4e57f1, 0xfab6, 0x11cf, 0x9d, 0x1a, 0x0, 0xaa, 0x0, 0xa7, 0xd, 0x51);")
|
|
cpp_quote("DEFINE_GUID(CLSID_MDPCOM, 0xf1e08563, 0x1598, 0x11d1, 0x9d, 0x77, 0x0, 0xc0, 0x4f, 0xd7, 0xbf, 0x3e);")
|
|
|
|
//cpp_quote("#define GETMDCLSID(IsService) ((IsService) ? CLSID_MDCOM : CLSID_MDCOMEXE)")
|
|
cpp_quote("#define GETMDCLSID(IsService) CLSID_MDCOM")
|
|
cpp_quote("#define GETMDPCLSID(IsService) CLSID_MDPCOM")
|
|
|
|
#ifdef UNICODE
|
|
cpp_quote("#define IID_IMDCOMSINK IID_IMDCOMSINK_W")
|
|
#else
|
|
cpp_quote("#define IID_IMDCOMSINK IID_IMDCOMSINK_A")
|
|
#endif
|
|
|
|
cpp_quote("DEFINE_GUID(IID_IMDCOMSINK_A, 0x5229ea36, 0x1bdf, 0x11d0, 0x9d, 0x1c, 0x0, 0xaa, 0x0, 0xa7, 0xd, 0x51);")
|
|
cpp_quote("DEFINE_GUID(IID_IMDCOMSINK_W, 0x6906ee20, 0xb69f, 0x11d0, 0xb9, 0xb9, 0x0, 0xa0, 0xc9, 0x22, 0xe7, 0x50);")
|
|
|
|
[object, uuid(C1AA48C0-FACC-11cf-9D1A-00AA00A70D51), pointer_default(unique)]
|
|
interface IMDCOM : IUnknown {
|
|
// Interfaces
|
|
|
|
HRESULT ComMDInitialize();
|
|
|
|
HRESULT ComMDTerminate([in] BOOL bSaveData);
|
|
|
|
HRESULT ComMDShutdown();
|
|
|
|
HRESULT ComMDAddMetaObjectA([in] METADATA_HANDLE hMDHandle,
|
|
[unique, in, string] unsigned char *pszMDPath);
|
|
|
|
HRESULT ComMDAddMetaObjectW([in] METADATA_HANDLE hMDHandle,
|
|
[unique, in, string] LPCWSTR pszMDPath);
|
|
|
|
HRESULT ComMDDeleteMetaObjectA([in] METADATA_HANDLE hMDHandle,
|
|
[unique, in, string] unsigned char *pszMDPath);
|
|
|
|
HRESULT ComMDDeleteMetaObjectW([in] METADATA_HANDLE hMDHandle,
|
|
[unique, in, string] LPCWSTR pszMDPath);
|
|
|
|
HRESULT ComMDDeleteChildMetaObjectsA([in] METADATA_HANDLE hMDHandle,
|
|
[unique, in, string] unsigned char *pszMDPath);
|
|
|
|
HRESULT ComMDDeleteChildMetaObjectsW([in] METADATA_HANDLE hMDHandle,
|
|
[unique, in, string] LPCWSTR pszMDPath);
|
|
|
|
HRESULT ComMDEnumMetaObjectsA([in] METADATA_HANDLE hMDHandle,
|
|
[unique, in, string] unsigned char *pszMDPath,
|
|
[out, size_is(METADATA_MAX_NAME_LEN)] unsigned char *pszMDName,
|
|
[in] DWORD dwMDEnumObjectIndex);
|
|
|
|
HRESULT ComMDEnumMetaObjectsW([in] METADATA_HANDLE hMDHandle,
|
|
[unique, in, string] LPCWSTR pszMDPath,
|
|
[out, size_is(METADATA_MAX_NAME_LEN)] LPWSTR pszMDName,
|
|
[in] DWORD dwMDEnumObjectIndex);
|
|
|
|
HRESULT ComMDCopyMetaObjectA([in] METADATA_HANDLE hMDSourceHandle,
|
|
[unique, in, string] unsigned char *pszMDSourcePath,
|
|
[in] METADATA_HANDLE hMDDestHandle,
|
|
[unique, in, string] unsigned char *pszMDDestPath,
|
|
[in] BOOL bMDOverwriteFlag,
|
|
[in] BOOL bMDCopyFlag);
|
|
|
|
HRESULT ComMDCopyMetaObjectW([in] METADATA_HANDLE hMDSourceHandle,
|
|
[unique, in, string] LPCWSTR pszMDSourcePath,
|
|
[in] METADATA_HANDLE hMDDestHandle,
|
|
[unique, in, string] LPCWSTR pszMDDestPath,
|
|
[in] BOOL bMDOverwriteFlag,
|
|
[in] BOOL bMDCopyFlag);
|
|
|
|
HRESULT ComMDRenameMetaObjectA([in] METADATA_HANDLE hMDHandle,
|
|
[unique, in, string] unsigned char *pszMDPath,
|
|
[unique, in, string] unsigned char *pszMDNewName);
|
|
|
|
HRESULT ComMDRenameMetaObjectW([in] METADATA_HANDLE hMDHandle,
|
|
[unique, in, string] LPCWSTR pszMDPath,
|
|
[unique, in, string] LPCWSTR pszMDNewName);
|
|
|
|
HRESULT ComMDSetMetaDataA([in] METADATA_HANDLE hMDHandle,
|
|
[unique, in, string] unsigned char *pszMDPath,
|
|
[in] PMETADATA_RECORD pmdrMDData);
|
|
|
|
HRESULT ComMDSetMetaDataW([in] METADATA_HANDLE hMDHandle,
|
|
[unique, in, string] LPCWSTR pszMDPath,
|
|
[in] PMETADATA_RECORD pmdrMDData);
|
|
|
|
HRESULT ComMDGetMetaDataA([in] METADATA_HANDLE hMDHandle,
|
|
[unique, in, string] unsigned char *pszMDPath,
|
|
[in, out] PMETADATA_RECORD pmdrMDData,
|
|
[out] DWORD *pdwMDRequiredDataLen);
|
|
|
|
HRESULT ComMDGetMetaDataW([in] METADATA_HANDLE hMDHandle,
|
|
[unique, in, string] LPCWSTR pszMDPath,
|
|
[in, out] PMETADATA_RECORD pmdrMDData,
|
|
[out] DWORD *pdwMDRequiredDataLen);
|
|
|
|
HRESULT ComMDDeleteMetaDataA([in] METADATA_HANDLE hMDHandle,
|
|
[unique, in, string] unsigned char *pszMDPath,
|
|
[in] DWORD dwMDIdentifier,
|
|
[in] DWORD dwMDDataType);
|
|
|
|
HRESULT ComMDDeleteMetaDataW([in] METADATA_HANDLE hMDHandle,
|
|
[unique, in, string] LPCWSTR pszMDPath,
|
|
[in] DWORD dwMDIdentifier,
|
|
[in] DWORD dwMDDataType);
|
|
|
|
HRESULT ComMDEnumMetaDataA([in] METADATA_HANDLE hMDHandle,
|
|
[unique, in, string] unsigned char *pszMDPath,
|
|
[in, out] PMETADATA_RECORD pmdrMDData,
|
|
[in] DWORD dwMDEnumDataIndex,
|
|
[out] DWORD *pdwMDRequiredDataLen);
|
|
|
|
HRESULT ComMDEnumMetaDataW([in] METADATA_HANDLE hMDHandle,
|
|
[unique, in, string] LPCWSTR pszMDPath,
|
|
[in, out] PMETADATA_RECORD pmdrMDData,
|
|
[in] DWORD dwMDEnumDataIndex,
|
|
[out] DWORD *pdwMDRequiredDataLen);
|
|
|
|
HRESULT ComMDGetAllMetaDataA([in] METADATA_HANDLE hMDHandle,
|
|
[unique, in, string] unsigned char *pszMDPath,
|
|
[in] DWORD dwMDAttributes,
|
|
[in] DWORD dwMDUserType,
|
|
[in] DWORD dwMDDataType,
|
|
[out] DWORD *pdwMDNumDataEntries,
|
|
[out] DWORD *pdwMDDataSetNumber,
|
|
[in] DWORD dwMDBufferSize,
|
|
[out, size_is(dwMDBufferSize)] unsigned char *pbBuffer,
|
|
[out] DWORD *pdwMDRequiredBufferSize);
|
|
|
|
HRESULT ComMDGetAllMetaDataW([in] METADATA_HANDLE hMDHandle,
|
|
[unique, in, string] LPCWSTR pszMDPath,
|
|
[in] DWORD dwMDAttributes,
|
|
[in] DWORD dwMDUserType,
|
|
[in] DWORD dwMDDataType,
|
|
[out] DWORD *pdwMDNumDataEntries,
|
|
[out] DWORD *pdwMDDataSetNumber,
|
|
[in] DWORD dwMDBufferSize,
|
|
[out, size_is(dwMDBufferSize)] unsigned char *pbBuffer,
|
|
[out] DWORD *pdwMDRequiredBufferSize);
|
|
|
|
HRESULT ComMDDeleteAllMetaDataA([in] METADATA_HANDLE hMDHandle,
|
|
[unique, in, string] unsigned char *pszMDPath,
|
|
[in] DWORD dwMDUserType,
|
|
[in] DWORD dwMDDataType);
|
|
|
|
HRESULT ComMDDeleteAllMetaDataW([in] METADATA_HANDLE hMDHandle,
|
|
[unique, in, string] LPCWSTR pszMDPath,
|
|
[in] DWORD dwMDUserType,
|
|
[in] DWORD dwMDDataType);
|
|
|
|
HRESULT ComMDCopyMetaDataA([in] METADATA_HANDLE hMDSourceHandle,
|
|
[unique, in, string] unsigned char *pszMDSourcePath,
|
|
[in] METADATA_HANDLE hMDDestHandle,
|
|
[unique, in, string] unsigned char *pszMDDestPath,
|
|
[in] DWORD dwMDAttributes,
|
|
[in] DWORD dwMDUserType,
|
|
[in] DWORD dwMDDataType,
|
|
[in] BOOL bMDCopyFlag);
|
|
|
|
HRESULT ComMDCopyMetaDataW([in] METADATA_HANDLE hMDSourceHandle,
|
|
[unique, in, string] LPCWSTR pszMDSourcePath,
|
|
[in] METADATA_HANDLE hMDDestHandle,
|
|
[unique, in, string] LPCWSTR pszMDDestPath,
|
|
[in] DWORD dwMDAttributes,
|
|
[in] DWORD dwMDUserType,
|
|
[in] DWORD dwMDDataType,
|
|
[in] BOOL bMDCopyFlag);
|
|
|
|
HRESULT ComMDOpenMetaObjectA([in] METADATA_HANDLE hMDHandle,
|
|
[unique, in, string] unsigned char *pszMDPath,
|
|
[in] DWORD dwMDAccessRequested,
|
|
[in] DWORD dwMDTimeOut,
|
|
[out] PMETADATA_HANDLE phMDNewHandle);
|
|
|
|
HRESULT ComMDOpenMetaObjectW([in] METADATA_HANDLE hMDHandle,
|
|
[unique, in, string] LPCWSTR pszMDPath,
|
|
[in] DWORD dwMDAccessRequested,
|
|
[in] DWORD dwMDTimeOut,
|
|
[out] PMETADATA_HANDLE phMDNewHandle);
|
|
|
|
HRESULT ComMDCloseMetaObject([in] METADATA_HANDLE hMDHandle);
|
|
|
|
HRESULT ComMDChangePermissions([in] METADATA_HANDLE hMDHandle,
|
|
[in] DWORD dwMDTimeOut,
|
|
[in] DWORD dwMDAccessRequested);
|
|
|
|
HRESULT ComMDSaveData();
|
|
|
|
HRESULT ComMDGetHandleInfo([in] METADATA_HANDLE hMDHandle,
|
|
[out] PMETADATA_HANDLE_INFO pmdhiInfo);
|
|
|
|
HRESULT ComMDGetSystemChangeNumber([out] DWORD *pdwSystemChangeNumber);
|
|
|
|
HRESULT ComMDGetDataSetNumberA([in] METADATA_HANDLE hMDHandle,
|
|
[unique, in, string] unsigned char *pszMDPath,
|
|
[out] DWORD *pdwMDDataSetNumber);
|
|
|
|
HRESULT ComMDGetDataSetNumberW([in] METADATA_HANDLE hMDHandle,
|
|
[unique, in, string] LPCWSTR pszMDPath,
|
|
[out] DWORD *pdwMDDataSetNumber);
|
|
|
|
HRESULT ComMDAddRefReferenceData([in] DWORD dwMDDataTag);
|
|
|
|
HRESULT ComMDReleaseReferenceData([in] DWORD dwMDDataTag);
|
|
|
|
HRESULT ComMDSetLastChangeTimeA([in] METADATA_HANDLE hMDHandle,
|
|
[unique, in, string] unsigned char *pszMDPath,
|
|
[in] PFILETIME pftMDLastChangeTime);
|
|
|
|
HRESULT ComMDSetLastChangeTimeW([in] METADATA_HANDLE hMDHandle,
|
|
[unique, in, string] LPCWSTR pszMDPath,
|
|
[in] PFILETIME pftMDLastChangeTime);
|
|
|
|
HRESULT ComMDGetLastChangeTimeA([in] METADATA_HANDLE hMDHandle,
|
|
[unique, in, string] unsigned char *pszMDPath,
|
|
[out] PFILETIME pftMDLastChangeTime);
|
|
|
|
HRESULT ComMDGetLastChangeTimeW([in] METADATA_HANDLE hMDHandle,
|
|
[unique, in, string] LPCWSTR pszMDPath,
|
|
[out] PFILETIME pftMDLastChangeTime);
|
|
|
|
};
|
|
|
|
cpp_quote("/* ")
|
|
cpp_quote("The Callback Interface - Clients that need to receive callbacks need to provide ")
|
|
cpp_quote(" an implementation of this interface and Advise the metadata server. ")
|
|
cpp_quote("*/ ")
|
|
|
|
#ifdef UNICODE
|
|
cpp_quote("#define IMDCOMSINK IMDCOMSINKW")
|
|
#else
|
|
cpp_quote("#define IMDCOMSINK IMDCOMSINKA")
|
|
#endif
|
|
|
|
[object, uuid(5229EA36-1BDF-11d0-9D1C-00AA00A70D51), pointer_default(unique)]
|
|
interface IMDCOMSINKA:IUnknown
|
|
{
|
|
HRESULT ComMDSinkNotify([in] METADATA_HANDLE hMDHandle,
|
|
[in] DWORD dwMDNumElements,
|
|
[in, size_is(dwMDNumElements)] MD_CHANGE_OBJECT_A pcoChangeList[]);
|
|
}
|
|
|
|
[object, uuid(6906EE20-B69F-11d0-B9B9-00A0C922E750), pointer_default(unique)]
|
|
interface IMDCOMSINKW:IUnknown
|
|
{
|
|
HRESULT ComMDSinkNotify([in] METADATA_HANDLE hMDHandle,
|
|
[in] DWORD dwMDNumElements,
|
|
[in, size_is(dwMDNumElements)] MD_CHANGE_OBJECT_W pcoChangeList[]);
|
|
}
|
|
|
|
// UNICODE DEFINITIONS
|
|
cpp_quote(" ")
|
|
cpp_quote("#ifdef UNICODE ")
|
|
cpp_quote(" ")
|
|
cpp_quote("#define ComMDAddMetaObject ComMDAddMetaObjectW ")
|
|
cpp_quote("#define ComMDDeleteMetaObject ComMDDeleteMetaObjectW ")
|
|
cpp_quote("#define ComMDDeleteChildMetaObjects ComMDDeleteChildMetaObjectsW ")
|
|
cpp_quote("#define ComMDEnumMetaObjects ComMDEnumMetaObjectsW ")
|
|
cpp_quote("#define ComMDCopyMetaObject ComMDCopyMetaObjectW ")
|
|
cpp_quote("#define ComMDRenameMetaObject ComMDRenameMetaObjectW ")
|
|
cpp_quote("#define ComMDSetMetaData ComMDSetMetaDataW ")
|
|
cpp_quote("#define ComMDGetMetaData ComMDGetMetaDataW ")
|
|
cpp_quote("#define ComMDDeleteMetaData ComMDDeleteMetaDataW ")
|
|
cpp_quote("#define ComMDEnumMetaData ComMDEnumMetaDataW ")
|
|
cpp_quote("#define ComMDGetAllMetaData ComMDGetAllMetaDataW ")
|
|
cpp_quote("#define ComMDDeleteAllMetaData ComMDDeleteAllMetaDataW ")
|
|
cpp_quote("#define ComMDCopyMetaData ComMDCopyMetaDataW ")
|
|
cpp_quote("#define ComMDOpenMetaObject ComMDOpenMetaObjectW ")
|
|
cpp_quote("#define ComMDGetDataSetNumber ComMDGetDataSetNumberW ")
|
|
cpp_quote("#define ComMDSetLastChangeTime ComMDSetLastChangeTimeW ")
|
|
cpp_quote("#define ComMDGetLastChangeTime ComMDGetLastChangeTimeW ")
|
|
cpp_quote(" ")
|
|
cpp_quote("#else // Not UNICODE ")
|
|
cpp_quote(" ")
|
|
cpp_quote("#define ComMDAddMetaObject ComMDAddMetaObjectA ")
|
|
cpp_quote("#define ComMDDeleteMetaObject ComMDDeleteMetaObjectA ")
|
|
cpp_quote("#define ComMDDeleteChildMetaObjects ComMDDeleteChildMetaObjectsA ")
|
|
cpp_quote("#define ComMDEnumMetaObjects ComMDEnumMetaObjectsA ")
|
|
cpp_quote("#define ComMDCopyMetaObject ComMDCopyMetaObjectA ")
|
|
cpp_quote("#define ComMDRenameMetaObject ComMDRenameMetaObjectA ")
|
|
cpp_quote("#define ComMDSetMetaData ComMDSetMetaDataA ")
|
|
cpp_quote("#define ComMDGetMetaData ComMDGetMetaDataA ")
|
|
cpp_quote("#define ComMDDeleteMetaData ComMDDeleteMetaDataA ")
|
|
cpp_quote("#define ComMDEnumMetaData ComMDEnumMetaDataA ")
|
|
cpp_quote("#define ComMDGetAllMetaData ComMDGetAllMetaDataA ")
|
|
cpp_quote("#define ComMDDeleteAllMetaData ComMDDeleteAllMetaDataA ")
|
|
cpp_quote("#define ComMDCopyMetaData ComMDCopyMetaDataA ")
|
|
cpp_quote("#define ComMDOpenMetaObject ComMDOpenMetaObjectA ")
|
|
cpp_quote("#define ComMDGetDataSetNumber ComMDGetDataSetNumberA ")
|
|
cpp_quote("#define ComMDSetLastChangeTime ComMDSetLastChangeTimeA ")
|
|
cpp_quote("#define ComMDGetLastChangeTime ComMDGetLastChangeTimeA ")
|
|
cpp_quote(" ")
|
|
cpp_quote("#endif //UNICODE ")
|
|
cpp_quote(" ")
|
|
cpp_quote("#endif")
|