mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-08-26 19:33:31 +00:00
[SDK][SYSDM] Enhance <shlobj_undoc.h> for associations (#9064)
Preparation for new ShellExecute. JIRA issue: CORE-20467 - Move ASSOCQUERY and IAssociationElementOld in <shlwapi_undoc.h> into <shlobj_undoc.h>. - Add IQuerySourceOld, IQuerySource, IObjectWithQuerySource, and IAssociationArrayInitialize interfaces into <shlobj_undoc.h>. - Add some GUIDs into <shlguid_undoc.h>. - Do #include <shlwapi_undoc.h> in sysdm performance.c to fix build.
This commit is contained in:
@@ -10,6 +10,7 @@
|
||||
#include "precomp.h"
|
||||
#include <shlguid_undoc.h> // CLSID_CRegTreeOptions
|
||||
#include <shlobj_undoc.h> // IRegTreeOptions
|
||||
#include <shlwapi_undoc.h> // SHSendMessageBroadcastW
|
||||
|
||||
static VOID
|
||||
RegTreeOpt_OnDestroy(IRegTreeOptions *pRTO)
|
||||
|
||||
@@ -147,6 +147,8 @@ DEFINE_GUID(CLSID_MruPidlList, 0x42AEDC87, 0x2188, 0x41FD, 0xB9, 0xA
|
||||
DEFINE_GUID(IID_IMruPidlList, 0x47851649, 0xA2EF, 0x4E67, 0xBA, 0xEC, 0xC6, 0xA1, 0x53, 0xAC, 0x72, 0xEC);
|
||||
DEFINE_GUID(CLSID_MruLongList, 0x53BD6B4E, 0x3780, 0x4693, 0xAF, 0xC3, 0x71, 0x61, 0xC2, 0xF3, 0xEE, 0x9C);
|
||||
DEFINE_GUID(IID_IMruDataList, 0xFE787BCB, 0x0EE8, 0x44FB, 0x8C, 0x89, 0x12, 0xF5, 0x08, 0x91, 0x3C, 0x40);
|
||||
DEFINE_GUID(IID_IQuerySourceOld, 0xC7478486, 0x7583, 0x49E7, 0xA6, 0xC2, 0xFA, 0xF8, 0xF0, 0x2B, 0xC3, 0x0E);
|
||||
DEFINE_GUID(IID_IQuerySource, 0x7BC28AC2, 0x0D9C, 0x4941, 0xBB, 0x9A, 0x72, 0xBE, 0xCB, 0x18, 0x4F, 0xAC);
|
||||
|
||||
/* The following list of interfaces was taken from here: http://www.geoffchappell.com/studies/windows/shell/shell32/interfaces/index.htm */
|
||||
DEFINE_GUID(IID_IAggregateFilterCondition, 0x86228AA3, 0xA736, 0x4733, 0xBD, 0x8A, 0x10, 0xA8, 0x3C, 0x69, 0xBF, 0x84);
|
||||
|
||||
@@ -4,13 +4,11 @@
|
||||
* PURPOSE: Undocumented shell interface
|
||||
* COPYRIGHT: Copyright 2009 Andrew Hill <ash77 at domain reactos.org>
|
||||
* Copyright 2013 Dominik Hornung
|
||||
* Copyright 2025 Katayama Hirofumi MZ <[email protected]>
|
||||
* Copyright 2026 Katayama Hirofumi MZ <[email protected]>
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <shlwapi_undoc.h> // For ASSOCQUERY
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
@@ -24,6 +22,26 @@ typedef struct tagSLOTITEMDATA
|
||||
|
||||
typedef INT (CALLBACK *SLOTCOMPARE)(LPCVOID pvData1, LPCVOID pvData2, UINT cbData);
|
||||
|
||||
/*****************************************************************************
|
||||
* ASSOCQUERY --- The type flags of association query
|
||||
*
|
||||
* @see IAssociationElementOld, IAssociationElement, IAssociationArrayOld, IAssociationArray
|
||||
* @see https://www.geoffchappell.com/studies/windows/shell/shell32/api/assocelem/query.htm
|
||||
*/
|
||||
typedef DWORD ASSOCQUERY;
|
||||
#define ASSOCQUERY_LOWORD_MASK 0x0000FFFF // The low-order word of flags
|
||||
#define ASSOCQUERY_STRING 0x00010000 // Responds to QueryString method
|
||||
#define ASSOCQUERY_EXISTS 0x00020000 // Responds to QueryExists method
|
||||
#define ASSOCQUERY_DIRECT 0x00040000 // Responds to QueryDirect method
|
||||
#define ASSOCQUERY_DWORD 0x00080000 // Responds to QueryDword method
|
||||
#define ASSOCQUERY_INDIRECT 0x00100000 // Obtains resource string from QueryString
|
||||
#define ASSOCQUERY_OBJECT 0x00200000 // Responds to QueryObject method
|
||||
#define ASSOCQUERY_GUID 0x00400000 // Responds to QueryGuid method
|
||||
#define ASSOCQUERY_EXTRA_NON_VERB 0x01000000 // Expects pszExtra for path or value
|
||||
#define ASSOCQUERY_EXTRA_VERB 0x02000000 // Expects pszExtra for verb
|
||||
#define ASSOCQUERY_SIGNIFICANCE 0x04000000 // Significance unknown
|
||||
#define ASSOCQUERY_FALLBACK 0x80000000 // Fallback to secondary query source
|
||||
|
||||
/*****************************************************************************
|
||||
* New shellstate structure
|
||||
*/
|
||||
@@ -848,7 +866,144 @@ DECLARE_INTERFACE_(ITrayPriv, IUnknown)
|
||||
#endif
|
||||
|
||||
/*****************************************************************************
|
||||
* IAssociationElement interface
|
||||
* IQuerySourceOld interface
|
||||
*
|
||||
* @see IQuerySource
|
||||
* @see https://www.geoffchappell.com/studies/windows/shell/shlwapi/interfaces/iquerysource.htm
|
||||
*/
|
||||
#define INTERFACE IQuerySourceOld
|
||||
DECLARE_INTERFACE_(IQuerySourceOld, IUnknown) // {C7478486-7583-49E7-A6C2-FAF8F02BC30E}
|
||||
{
|
||||
/*** IUnknown ***/
|
||||
STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
|
||||
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
||||
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
||||
/*** IQuerySourceOld ***/
|
||||
STDMETHOD(EnumValues)(THIS_ IEnumString **ppEnum);
|
||||
STDMETHOD(EnumSources)(THIS_ IEnumString **ppEnum);
|
||||
STDMETHOD(QueryValueString)(THIS_ PCWSTR keyName, PCWSTR valueName, PWSTR *ppszValue);
|
||||
STDMETHOD(QueryValueDword)(THIS_ PCWSTR keyName, PCWSTR valueName, DWORD *pdwValue);
|
||||
STDMETHOD(QueryValueExists)(THIS_ PCWSTR keyName, PCWSTR valueName);
|
||||
STDMETHOD(QueryValueDirect)(THIS_ PCWSTR keyName, PCWSTR valueName, FLAGGED_BYTE_BLOB **ppBlob);
|
||||
STDMETHOD(OpenSource)(THIS_ PCWSTR keyName, BOOL, IQuerySourceOld **ppSource);
|
||||
STDMETHOD(SetValueDirect)(THIS_ PCWSTR keyName, PCWSTR valueName, DWORD, DWORD, PBYTE);
|
||||
};
|
||||
#undef INTERFACE
|
||||
|
||||
#ifdef COBJMACROS
|
||||
#define IQuerySourceOld_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
|
||||
#define IQuerySourceOld_AddRef(T) (T)->lpVtbl->AddRef(T)
|
||||
#define IQuerySourceOld_Release(T) (T)->lpVtbl->Release(T)
|
||||
#define IQuerySourceOld_EnumValues(T,a) (T)->lpVtbl->EnumValues(T,a)
|
||||
#define IQuerySourceOld_EnumSources(T,a) (T)->lpVtbl->EnumSources(T,a)
|
||||
#define IQuerySourceOld_QueryValueString(T,a,b,c) (T)->lpVtbl->QueryValueString(T,a,b,c)
|
||||
#define IQuerySourceOld_QueryValueDword(T,a,b,c) (T)->lpVtbl->QueryValueDword(T,a,b,c)
|
||||
#define IQuerySourceOld_QueryValueExists(T,a,b) (T)->lpVtbl->QueryValueExists(T,a,b)
|
||||
#define IQuerySourceOld_QueryValueDirect(T,a,b,c) (T)->lpVtbl->QueryValueDirect(T,a,b,c)
|
||||
#define IQuerySourceOld_OpenSource(T,a,b,c) (T)->lpVtbl->OpenSource(T,a,b,c)
|
||||
#define IQuerySourceOld_SetValueDirect(T,a,b,c,d,e) (T)->lpVtbl->SetValueDirect(T,a,b,c,d,e)
|
||||
#endif
|
||||
|
||||
/*****************************************************************************
|
||||
* IQuerySource interface (new version)
|
||||
*
|
||||
* @see IQuerySourceOld
|
||||
* @see https://www.geoffchappell.com/studies/windows/shell/shlwapi/interfaces/iquerysource.htm
|
||||
*/
|
||||
#define INTERFACE IQuerySource
|
||||
DECLARE_INTERFACE_(IQuerySource, IUnknown) // {7BC28AC2-0D9C-4941-BB9A-72BECB184FAC}
|
||||
{
|
||||
/*** IUnknown ***/
|
||||
STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
|
||||
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
||||
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
||||
/*** IQuerySource ***/
|
||||
STDMETHOD(EnumValues)(THIS_ IEnumString **ppEnum);
|
||||
STDMETHOD(QueryValueString)(THIS_ PCWSTR keyName, PCWSTR valueName, PWSTR *ppszValue);
|
||||
STDMETHOD(QueryValueDword)(THIS_ PCWSTR keyName, PCWSTR valueName, DWORD *pdwValue);
|
||||
STDMETHOD(QueryValueGuid)(THIS_ PCWSTR keyName, PCWSTR valueName, GUID *guid);
|
||||
STDMETHOD(QueryValueExists)(THIS_ PCWSTR keyName, PCWSTR valueName);
|
||||
STDMETHOD(QueryValueDirect)(THIS_ PCWSTR keyName, PCWSTR valueName, FLAGGED_BYTE_BLOB **ppBlob);
|
||||
STDMETHOD(EnumSources)(THIS_ IEnumString **ppEnum);
|
||||
STDMETHOD(OpenSource)(THIS_ PCWSTR keyName, IQuerySource **ppSource);
|
||||
};
|
||||
#undef INTERFACE
|
||||
|
||||
#ifdef COBJMACROS
|
||||
#define IQuerySource_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
|
||||
#define IQuerySource_AddRef(T) (T)->lpVtbl->AddRef(T)
|
||||
#define IQuerySource_Release(T) (T)->lpVtbl->Release(T)
|
||||
#define IQuerySource_EnumValues(T,a) (T)->lpVtbl->EnumValues(T,a)
|
||||
#define IQuerySource_QueryValueString(T,a,b,c) (T)->lpVtbl->QueryValueString(T,a,b,c)
|
||||
#define IQuerySource_QueryValueDword(T,a,b,c) (T)->lpVtbl->QueryValueDword(T,a,b,c)
|
||||
#define IQuerySource_QueryValueGuid(T,a,b,c) (T)->lpVtbl->QueryValueGuid(T,a,b,c)
|
||||
#define IQuerySource_QueryValueExists(T,a,b) (T)->lpVtbl->QueryValueExists(T,a,b)
|
||||
#define IQuerySource_QueryValueDirect(T,a,b,c) (T)->lpVtbl->QueryValueDirect(T,a,b,c)
|
||||
#define IQuerySource_EnumSources(T,a) (T)->lpVtbl->EnumSources(T,a)
|
||||
#define IQuerySource_OpenSource(T,a,b) (T)->lpVtbl->OpenSource(T,a,b)
|
||||
#endif
|
||||
|
||||
/*****************************************************************************
|
||||
* IObjectWithQuerySource interface
|
||||
*
|
||||
* @see https://www.geoffchappell.com/studies/windows/shell/shell32/interfaces/iobjectwithquerysource.htm
|
||||
*/
|
||||
#define INTERFACE IObjectWithQuerySource
|
||||
DECLARE_INTERFACE_(IObjectWithQuerySource, IUnknown) // {B3DCB623-4280-4EB1-84B3-8D07E84F299A}
|
||||
{
|
||||
/*** IUnknown ***/
|
||||
STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
|
||||
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
||||
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
||||
/*** IObjectWithQuerySource ***/
|
||||
STDMETHOD(SetSource)(THIS_ IQuerySource *pSource);
|
||||
STDMETHOD(GetSource)(THIS_ REFIID riid, PVOID *ppSource);
|
||||
};
|
||||
#undef INTERFACE
|
||||
|
||||
#ifdef COBJMACROS
|
||||
#define IObjectWithQuerySource_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
|
||||
#define IObjectWithQuerySource_AddRef(T) (T)->lpVtbl->AddRef(T)
|
||||
#define IObjectWithQuerySource_Release(T) (T)->lpVtbl->Release(T)
|
||||
#define IObjectWithQuerySource_SetSource(T,a) (T)->lpVtbl->SetSource(T,a)
|
||||
#define IObjectWithQuerySource_GetSource(T,a,b) (T)->lpVtbl->GetSource(T,a,b)
|
||||
#endif
|
||||
|
||||
/*****************************************************************************
|
||||
* IAssociationElementOld interface
|
||||
*
|
||||
* @see IAssociationElement
|
||||
* @see https://www.geoffchappell.com/studies/windows/shell/shlwapi/interfaces/iassociationelement.htm
|
||||
*/
|
||||
#define INTERFACE IAssociationElementOld
|
||||
DECLARE_INTERFACE_(IAssociationElementOld, IUnknown) // {E58B1ABF-9596-4DBA-8997-89DCDEF46992}
|
||||
{
|
||||
/*** IUnknown ***/
|
||||
STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
|
||||
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
||||
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
||||
/*** IAssociationElementOld ***/
|
||||
STDMETHOD(QueryString)(THIS_ ASSOCQUERY query, PCWSTR key, PWSTR *ppszValue) PURE;
|
||||
STDMETHOD(QueryDword)(THIS_ ASSOCQUERY query, PCWSTR key, DWORD *pdwValue) PURE;
|
||||
STDMETHOD(QueryExists)(THIS_ ASSOCQUERY query, PCWSTR key) PURE;
|
||||
STDMETHOD(QueryDirect)(THIS_ ASSOCQUERY query, PCWSTR key, FLAGGED_BYTE_BLOB **ppBlob) PURE;
|
||||
STDMETHOD(QueryObject)(THIS_ ASSOCQUERY query, PCWSTR key, REFIID riid, PVOID *ppvObj) PURE;
|
||||
};
|
||||
#undef INTERFACE
|
||||
|
||||
#ifdef COBJMACROS
|
||||
#define IAssociationElementOld_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
|
||||
#define IAssociationElementOld_AddRef(T) (T)->lpVtbl->AddRef(T)
|
||||
#define IAssociationElementOld_Release(T) (T)->lpVtbl->Release(T)
|
||||
#define IAssociationElementOld_QueryString(T,a,b,c) (T)->lpVtbl->QueryString(T,a,b,c)
|
||||
#define IAssociationElementOld_QueryDword(T,a,b,c) (T)->lpVtbl->QueryDword(T,a,b,c)
|
||||
#define IAssociationElementOld_QueryExists(T,a,b) (T)->lpVtbl->QueryExists(T,a,b)
|
||||
#define IAssociationElementOld_QueryDirect(T,a,b,c) (T)->lpVtbl->QueryDirect(T,a,b,c)
|
||||
#define IAssociationElementOld_QueryObject(T,a,b,c,d) (T)->lpVtbl->QueryObject(T,a,b,c,d)
|
||||
#endif
|
||||
|
||||
/*****************************************************************************
|
||||
* IAssociationElement interface (new version)
|
||||
*
|
||||
* @see IAssociationElementOld
|
||||
* @see https://www.geoffchappell.com/studies/windows/shell/shlwapi/interfaces/iassociationelement.htm
|
||||
@@ -926,7 +1081,7 @@ DECLARE_INTERFACE_(IAssociationArrayOld, IUnknown) // {3B877E3C-67DE-4F9A-B29B-1
|
||||
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
||||
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
||||
/*** IAssociationArrayOld ***/
|
||||
STDMETHOD(EnumElements)(THIS_ ULONG flags, IEnumAssociationElements **ppElement) PURE;
|
||||
STDMETHOD(EnumElements)(THIS_ ULONG flags, IEnumAssociationElements **ppEnum) PURE;
|
||||
STDMETHOD(QueryString)(THIS_ ULONG flags, ASSOCQUERY query, PCWSTR key, PWSTR *ppszValue) PURE;
|
||||
STDMETHOD(QueryDword)(THIS_ ULONG flags, ASSOCQUERY query, PCWSTR key, DWORD *pdwValue) PURE;
|
||||
STDMETHOD(QueryExists)(THIS_ ULONG flags, ASSOCQUERY query, PCWSTR key) PURE;
|
||||
@@ -982,6 +1137,34 @@ DECLARE_INTERFACE_(IAssociationArray, IUnknown) // {19ADBAFD-1C5F-4FC7-94EE-8467
|
||||
#define IAssociationArray_QueryObject(T,a,b,c,d) (T)->lpVtbl->QueryObject(T,a,b,c,d)
|
||||
#endif
|
||||
|
||||
/*****************************************************************************
|
||||
* IAssociationArrayInitialize interface
|
||||
*
|
||||
* @see https://www.geoffchappell.com/studies/windows/shell/shell32/interfaces/iassociationarrayinitialize.htm
|
||||
*/
|
||||
#define INTERFACE IAssociationArrayInitialize
|
||||
DECLARE_INTERFACE_(IAssociationArrayInitialize, IUnknown) // {EE9165BF-A4D9-474B-8236-6735CB7E28B6}
|
||||
{
|
||||
/*** IUnknown ***/
|
||||
STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
|
||||
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
||||
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
||||
/*** IAssociationArrayInitialize ***/
|
||||
STDMETHOD(InitClassElements)(ULONG flags, PCWSTR pszClass);
|
||||
STDMETHOD(InsertElements)(ULONG flags, IEnumAssociationElements *pEnum);
|
||||
STDMETHOD(FilterElements)(ULONG filter);
|
||||
};
|
||||
#undef INTERFACE
|
||||
|
||||
#ifdef COBJMACROS
|
||||
#define IAssociationArrayInitialize_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
|
||||
#define IAssociationArrayInitialize_AddRef(T) (T)->lpVtbl->AddRef(T)
|
||||
#define IAssociationArrayInitialize_Release(T) (T)->lpVtbl->Release(T)
|
||||
#define IAssociationArrayInitialize_InitClassElements(T,a,b) (T)->lpVtbl->InitClassElements(T,a,b)
|
||||
#define IAssociationArrayInitialize_InsertElements(T,a,b) (T)->lpVtbl->InsertElements(T,a,b)
|
||||
#define IAssociationArrayInitialize_FilterElements(T,a) (T)->lpVtbl->FilterElements(T,a)
|
||||
#endif
|
||||
|
||||
HANDLE WINAPI SHCreateDesktop(IShellDesktopTray*);
|
||||
BOOL WINAPI SHDesktopMessageLoop(HANDLE);
|
||||
HRESULT WINAPI SHCreateFileDataObject(PCIDLIST_ABSOLUTE pidlFolder, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, IDataObject* pDataInner, IDataObject** ppDataObj);
|
||||
|
||||
@@ -14,26 +14,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*****************************************************************************
|
||||
* ASSOCQUERY --- The type flags of association query
|
||||
*
|
||||
* @see IAssociationElementOld, IAssociationElement, IAssociationArrayOld, IAssociationArray
|
||||
* @see https://www.geoffchappell.com/studies/windows/shell/shell32/api/assocelem/query.htm
|
||||
*/
|
||||
typedef DWORD ASSOCQUERY;
|
||||
#define ASSOCQUERY_LOWORD_MASK 0x0000FFFF // The low-order word of flags
|
||||
#define ASSOCQUERY_STRING 0x00010000 // Responds to QueryString method
|
||||
#define ASSOCQUERY_EXISTS 0x00020000 // Responds to QueryExists method
|
||||
#define ASSOCQUERY_DIRECT 0x00040000 // Responds to QueryDirect method
|
||||
#define ASSOCQUERY_DWORD 0x00080000 // Responds to QueryDword method
|
||||
#define ASSOCQUERY_INDIRECT 0x00100000 // Obtains resource string from QueryString
|
||||
#define ASSOCQUERY_OBJECT 0x00200000 // Responds to QueryObject method
|
||||
#define ASSOCQUERY_GUID 0x00400000 // Responds to QueryGuid method
|
||||
#define ASSOCQUERY_EXTRA_NON_VERB 0x01000000 // Expects pszExtra for path or value
|
||||
#define ASSOCQUERY_EXTRA_VERB 0x02000000 // Expects pszExtra for verb
|
||||
#define ASSOCQUERY_SIGNIFICANCE 0x04000000 // Significance unknown
|
||||
#define ASSOCQUERY_FALLBACK 0x80000000 // Fallback to secondary query source
|
||||
|
||||
#define SHELL_NO_POLICY ((DWORD)-1)
|
||||
|
||||
typedef struct tagPOLICYDATA
|
||||
@@ -505,39 +485,6 @@ SHWindowsPolicyGetValue(
|
||||
|
||||
#define E_DATATYPE_MISMATCH HRESULT_FROM_WIN32(ERROR_DATATYPE_MISMATCH)
|
||||
|
||||
/*****************************************************************************
|
||||
* IAssociationElementOld interface
|
||||
*
|
||||
* @see IAssociationElement
|
||||
* @see https://www.geoffchappell.com/studies/windows/shell/shlwapi/interfaces/iassociationelement.htm
|
||||
*/
|
||||
#define INTERFACE IAssociationElementOld
|
||||
DECLARE_INTERFACE_(IAssociationElementOld, IUnknown) // {E58B1ABF-9596-4DBA-8997-89DCDEF46992}
|
||||
{
|
||||
/*** IUnknown ***/
|
||||
STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
|
||||
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
||||
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
||||
/*** IAssociationElementOld ***/
|
||||
STDMETHOD(QueryString)(THIS_ ASSOCQUERY query, PCWSTR key, PWSTR *ppszValue) PURE;
|
||||
STDMETHOD(QueryDword)(THIS_ ASSOCQUERY query, PCWSTR key, DWORD *pdwValue) PURE;
|
||||
STDMETHOD(QueryExists)(THIS_ ASSOCQUERY query, PCWSTR key) PURE;
|
||||
STDMETHOD(QueryDirect)(THIS_ ASSOCQUERY query, PCWSTR key, FLAGGED_BYTE_BLOB **ppBlob) PURE;
|
||||
STDMETHOD(QueryObject)(THIS_ ASSOCQUERY query, PCWSTR key, REFIID riid, PVOID *ppvObj) PURE;
|
||||
};
|
||||
#undef INTERFACE
|
||||
|
||||
#ifdef COBJMACROS
|
||||
#define IAssociationElementOld_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
|
||||
#define IAssociationElementOld_AddRef(T) (T)->lpVtbl->AddRef(T)
|
||||
#define IAssociationElementOld_Release(T) (T)->lpVtbl->Release(T)
|
||||
#define IAssociationElementOld_QueryString(T,a,b,c) (T)->lpVtbl->QueryString(T,a,b,c)
|
||||
#define IAssociationElementOld_QueryDword(T,a,b,c) (T)->lpVtbl->QueryDword(T,a,b,c)
|
||||
#define IAssociationElementOld_QueryExists(T,a,b) (T)->lpVtbl->QueryExists(T,a,b)
|
||||
#define IAssociationElementOld_QueryDirect(T,a,b,c) (T)->lpVtbl->QueryDirect(T,a,b,c)
|
||||
#define IAssociationElementOld_QueryObject(T,a,b,c,d) (T)->lpVtbl->QueryObject(T,a,b,c,d)
|
||||
#endif
|
||||
|
||||
/*****************************************************************************
|
||||
* ZoneCheck*
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user