Skip to content
Snippets Groups Projects
Commit 24f4cdc6 authored by Juergen Schmied's avatar Juergen Schmied Committed by Alexandre Julliard
Browse files

Stubs for IQueryAssociations.

parent 85b92934
No related branches found
No related tags found
No related merge requests found
......@@ -11,6 +11,7 @@
#include "winerror.h"
#include "winreg.h"
#include "wine/obj_queryassociations.h"
#include "shlobj.h"
#include "shell32_main.h"
#include "shlguid.h"
......@@ -193,3 +194,155 @@ BOOL HCR_GetFolderAttributes (REFIID riid, LPDWORD szDest)
return TRUE;
}
typedef struct
{ ICOM_VFIELD(IQueryAssociations);
DWORD ref;
} IQueryAssociationsImpl;
static struct ICOM_VTABLE(IQueryAssociations) qavt;
/**************************************************************************
* IQueryAssociations_Constructor
*/
IQueryAssociations* IQueryAssociations_Constructor(void)
{
IQueryAssociationsImpl* ei;
ei=(IQueryAssociationsImpl*)HeapAlloc(GetProcessHeap(),0,sizeof(IQueryAssociationsImpl));
ei->ref=1;
ICOM_VTBL(ei) = &qavt;
TRACE("(%p)\n",ei);
shell32_ObjCount++;
return (IQueryAssociations *)ei;
}
/**************************************************************************
* IQueryAssociations_QueryInterface
*/
static HRESULT WINAPI IQueryAssociations_fnQueryInterface(
IQueryAssociations * iface,
REFIID riid,
LPVOID *ppvObj)
{
ICOM_THIS(IQueryAssociationsImpl,iface);
TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj);
*ppvObj = NULL;
if(IsEqualIID(riid, &IID_IUnknown)) /*IUnknown*/
{
*ppvObj = This;
}
else if(IsEqualIID(riid, &IID_IQueryAssociations)) /*IExtractIcon*/
{
*ppvObj = (IQueryAssociations*)This;
}
if(*ppvObj)
{
IQueryAssociations_AddRef((IQueryAssociations*) *ppvObj);
TRACE("-- Interface: (%p)->(%p)\n",ppvObj,*ppvObj);
return S_OK;
}
TRACE("-- Interface: E_NOINTERFACE\n");
return E_NOINTERFACE;
}
/**************************************************************************
* IQueryAssociations_AddRef
*/
static ULONG WINAPI IQueryAssociations_fnAddRef(IQueryAssociations * iface)
{
ICOM_THIS(IQueryAssociationsImpl,iface);
TRACE("(%p)->(count=%lu)\n",This, This->ref );
shell32_ObjCount++;
return ++(This->ref);
}
/**************************************************************************
* IQueryAssociations_Release
*/
static ULONG WINAPI IQueryAssociations_fnRelease(IQueryAssociations * iface)
{
ICOM_THIS(IQueryAssociationsImpl,iface);
TRACE("(%p)->()\n",This);
shell32_ObjCount--;
if (!--(This->ref))
{
TRACE(" destroying IExtractIcon(%p)\n",This);
HeapFree(GetProcessHeap(),0,This);
return 0;
}
return This->ref;
}
static HRESULT WINAPI IQueryAssociations_fnInit(
IQueryAssociations * iface,
ASSOCF flags,
LPCWSTR pszAssoc,
HKEY hkProgid,
HWND hwnd)
{
return E_NOTIMPL;
}
static HRESULT WINAPI IQueryAssociations_fnGetString(
IQueryAssociations * iface,
ASSOCF flags,
ASSOCSTR str,
LPCWSTR pszExtra,
LPWSTR pszOut,
DWORD *pcchOut)
{
return E_NOTIMPL;
}
static HRESULT WINAPI IQueryAssociations_fnGetKey(
IQueryAssociations * iface,
ASSOCF flags,
ASSOCKEY key,
LPCWSTR pszExtra,
HKEY *phkeyOut)
{
return E_NOTIMPL;
}
static HRESULT WINAPI IQueryAssociations_fnGetData(
IQueryAssociations * iface,
ASSOCF flags,
ASSOCDATA data,
LPCWSTR pszExtra,
LPVOID pvOut,
DWORD *pcbOut)
{
return E_NOTIMPL;
}
static HRESULT WINAPI IQueryAssociations_fnGetEnum(
IQueryAssociations * iface,
ASSOCF flags,
ASSOCENUM assocenum,
LPCWSTR pszExtra,
REFIID riid,
LPVOID *ppvOut)
{
return E_NOTIMPL;
}
static struct ICOM_VTABLE(IQueryAssociations) qavt =
{
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
IQueryAssociations_fnQueryInterface,
IQueryAssociations_fnAddRef,
IQueryAssociations_fnRelease,
IQueryAssociations_fnInit,
IQueryAssociations_fnGetString,
IQueryAssociations_fnGetKey,
IQueryAssociations_fnGetData,
IQueryAssociations_fnGetEnum
};
/************************************************************
* IQueryAssociations
*/
#ifndef __WINE_WINE_OBJ_QUERYASSOCIATIONS_H
#define __WINE_WINE_OBJ_QUERYASSOCIATIONS_H
#include "winbase.h"
#include "wine/obj_base.h"
#ifdef __cplusplus
extern "C" {
#endif /* defined(__cplusplus) */
DEFINE_GUID(IID_IQueryAssociations, 0xc46ca590, 0x3c3f, 0x11d2, 0xbe, 0xe6, 0x00, 0x00, 0xf8, 0x05, 0xca, 0x57);
typedef struct IQueryAssociations IQueryAssociations,*LPQUERYASSOCIATIONS;
#define ASSOCF_INIT_BYEXENAME 0x00000002
#define ASSOCF_OPEN_BYEXENAME 0x00000002
#define ASSOCF_INIT_DEFAULTTOSTAR 0x00000004
#define ASSOCF_INIT_DEFAULTTOFOLDER 0x00000008
#define ASSOCF_NOUSERSETTINGS 0x00000010
#define ASSOCF_NOTRUNCATE 0x00000020
#define ASSOCF_VERIFY 0x00000040
#define ASSOCF_REMAPRUNDLL 0x00000080
#define ASSOCF_NOFIXUPS 0x00000100
#define ASSOCF_IGNOREBASECLASS 0x00000200
typedef DWORD ASSOCF;
typedef enum
{
ASSOCSTR_COMMAND = 1,
ASSOCSTR_EXECUTABLE,
ASSOCSTR_FRIENDLYDOCNAME,
ASSOCSTR_FRIENDLYAPPNAME,
ASSOCSTR_NOOPEN,
ASSOCSTR_SHELLNEWVALUE,
ASSOCSTR_DDECOMMAND,
ASSOCSTR_DDEIFEXEC,
ASSOCSTR_DDEAPPLICATION,
ASSOCSTR_DDETOPIC,
ASSOCSTR_MAX
} ASSOCSTR;
typedef enum
{
ASSOCKEY_SHELLEXECCLASS = 1,
ASSOCKEY_APP,
ASSOCKEY_CLASS,
ASSOCKEY_BASECLASS,
ASSOCKEY_MAX
} ASSOCKEY;
typedef enum
{
ASSOCDATA_MSIDESCRIPTOR = 1,
ASSOCDATA_NOACTIVATEHANDLER,
ASSOCDATA_QUERYCLASSSTORE,
ASSOCDATA_HASPERUSERASSOC,
ASSOCDATA_MAX
} ASSOCDATA;
typedef enum
{
ASSOCENUM_NONE
} ASSOCENUM;
#define ICOM_INTERFACE IQueryAssociations
#define IQueryAssociations_METHODS \
ICOM_METHOD4 (HRESULT, Init, ASSOCF, flags, LPCWSTR, pszAssoc, HKEY, hkProgid, HWND, hwnd) \
ICOM_METHOD5 (HRESULT, GetString, ASSOCF, flags, ASSOCSTR, str, LPCWSTR, pszExtra, LPWSTR, pszOut, DWORD*, pcchOut) \
ICOM_METHOD4 (HRESULT, GetKey, ASSOCF, flags, ASSOCKEY, key, LPCWSTR, pszExtra, HKEY*, phkeyOut) \
ICOM_METHOD5 (HRESULT, GetData, ASSOCF, flags, ASSOCDATA, data, LPCWSTR, pszExtra, LPVOID, pvOut, DWORD*, pcbOut) \
ICOM_METHOD5 (HRESULT, GetEnum, ASSOCF, flags, ASSOCENUM, assocenum, LPCWSTR, pszExtra, REFIID, riid, LPVOID*, ppvOut)
#define IQueryAssociations_IMETHODS \
IUnknown_IMETHODS \
IQueryAssociations_METHODS
ICOM_DEFINE(IQueryAssociations,IUnknown)
#undef ICOM_INTERFACE
#define IQueryAssociations_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
#define IQueryAssociations_AddRef(p) ICOM_CALL(AddRef,p)
#define IQueryAssociations_Release(p) ICOM_CALL(Release,p)
#define IQueryAssociations_Init(p,a,b,c,d) ICOM_CALL4(Init,p,a,b,c,d)
#define IQueryAssociations_GetString(p,a,b,c,d,e) ICOM_CALL5(GetString,p,a,b,c,d,e)
#define IQueryAssociations_GetKey(p,a,b,c,d) ICOM_CALL4(GetKey,p,a,b,c,d)
#define IQueryAssociations_GetData(p,a,b,c,d,e) ICOM_CALL5(GetData,p,a,b,c,d,e)
#define IQueryAssociations_GetEnum(p,a,b,c,d,e) ICOM_CALL5(GetEnum,p,a,b,c,d,e)
#ifdef __cplusplus
} /* extern "C" */
#endif /* defined(__cplusplus) */
#endif /* __WINE_WINE_OBJ_QUERYASSOCIATIONS_H */
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment