78 for (
UINT iItem = 0; iItem < cItems; ++iItem)
107 IQuerySourceOld* pSource,
111 IQuerySourceOld** ppSource)
115 return pSource->OpenSource(szDest,
bCreate, ppSource);
123 if (!lpsz || *lpsz !=
'.' || !lpsz[1])
143 if (lpSubKey && *lpSubKey)
159 IQuerySourceOld* pSource,
165 return pSource->QueryValueDirect(keyName, valueName, (FLAGGED_BYTE_BLOB**)
pValue);
170 IQuerySourceOld* pSource,
176 return pSource->QueryValueDword(keyName, valueName, (
PDWORD)
pValue);
181 IQuerySourceOld* pSource,
187 return pSource->QueryValueExists(keyName, valueName);
192 IQuerySourceOld* pSource,
216 IQuerySourceOld** ppSource)
257 if (
StrCmpIW(
L"Excel.Sheet.8", psz) == 0)
319 NULL, &pszParameters);
330 *ppszApplication =
NULL;
342 pchComma - pszParameters);
378 :
public IObjectWithQuerySourceOld
379 ,
public IAssociationElementOld
389 IQuerySourceOld* pQS,
396 IQuerySourceOld* pSource,
428 ,
public IPersistString2
643 IQuerySourceOld* pQS,
665 IQuerySourceOld* pSource,
695 *
ppv =
static_cast<IObjectWithQuerySourceOld*
>(
this);
699 if (
riid == IID_IAssociationElementOld)
701 *
ppv =
static_cast<IAssociationElementOld*
>(
this);
791 if (
riid == IID_IPersistString2)
793 *
ppv =
static_cast<IPersistString2*
>(
this);
802 return CAssocElement::AddRef();
807 return CAssocElement::Release();
837 IQuerySourceOld* pSource;
850 ERR(
"E_OUTOFMEMORY\n");
855 hr = pElement->SetSource(pSource);
856 *ppElement =
static_cast<IAssociationElementOld*
>(pElement);
866 IAssociationElementOld* pDelegate;
871 hr = pDelegate->QueryString(
query,
NULL, ppszValue);
881 IAssociationElementOld* pDelegate;
896 IAssociationElementOld* pDelegate;
912 IAssociationElementOld* pDelegate;
931 IAssociationElementOld* pDelegate;
947 *pClassID = CLSID_AssocShellElement;
960 cchBuff = cchString + 1;
984 IQuerySourceOld* pShellSource;
994 hr = pShellSource->OpenSource(pszVerb,
FALSE, ppSource);
1015 hr = pShellSource->OpenSource(pszFirst,
FALSE, ppSource);
1026 pShellSource->Release();
1035 : m_bAppSource(bAppSource)
1076 IAssociationElementOld* pElement;
1101 IPersistString2* pPS2;
1105 hr = pPS2->SetString(psz);
1153 *pClsid = CLSID_AssocApplicationElement;
1250 *pClassID = CLSID_AssocProgidElement;
1311 *pClassID = CLSID_AssocClsidElement;
1326 *pClassID = CLSID_AssocSystemElement;
1349 *pClassID = CLSID_AssocFolderElement;
1373 *pClassID = CLSID_AssocStarElement;
1403 *pClassID = CLSID_AssocPerceivedElement;
1454 IAssociationElementOld* pDelegate;
1477 *pClassID = CLSID_AssocClientElement;
1500 DWORD dwDisposition;
1514 IQuerySourceOld* pNewSource =
NULL;
1537 L"Software\\Clients\\Mail\\Netscape Messenger",
1595 lstrcmpiW(szData,
L"Netscape Messenger") != 0 ||
1614 IAssociationElementOld* pElement;
1615 if (rclsid == CLSID_AssocShellElement)
1618 pElement =
static_cast<IAssociationElementOld*
>(pNewElement);
1620 else if (rclsid == CLSID_AssocApplicationElement)
1623 pElement =
static_cast<IAssociationElementOld*
>(pNewElement);
1625 else if (rclsid == CLSID_AssocProgidElement)
1628 pElement =
static_cast<IAssociationElementOld*
>(pNewElement);
1630 else if (rclsid == CLSID_AssocClsidElement)
1633 pElement =
static_cast<IAssociationElementOld*
>(pNewElement);
1635 else if (rclsid == CLSID_AssocSystemElement)
1638 pElement =
static_cast<IAssociationElementOld*
>(pNewElement);
1640 else if (rclsid == CLSID_AssocFolderElement)
1643 pElement =
static_cast<IAssociationElementOld*
>(pNewElement);
1645 else if (rclsid == CLSID_AssocStarElement)
1648 pElement =
static_cast<IAssociationElementOld*
>(pNewElement);
1650 else if (rclsid == CLSID_AssocPerceivedElement)
1653 pElement =
static_cast<IAssociationElementOld*
>(pNewElement);
1655 else if (rclsid == CLSID_AssocClientElement)
1658 pElement =
static_cast<IAssociationElementOld*
>(pNewElement);
1669 ERR(
"E_OUTOFMEMORY\n");
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define RegCloseKey(hKey)
HRESULT _InitSource() override
HRESULT _GetAppDisplayName(PWSTR *ppsz)
UINT _GetQueryKeyVal(const QUERYKEYVAL **ppItems) override
STDMETHODIMP GetClassID(CLSID *pClsid) override
STDMETHODIMP QueryObject(ASSOCQUERY query, PCWSTR key, REFIID riid, PVOID *ppv) override
STDMETHODIMP QueryString(ASSOCQUERY query, PCWSTR key, PWSTR *ppsz) override
HRESULT _InitSourceFromKey(HKEY hKey, PCWSTR lpSubKey, DWORD dwFlags)
STDMETHODIMP QueryString(ASSOCQUERY query, PCWSTR key, PWSTR *ppszValue) override
HRESULT _FixNetscapeRegistration()
HRESULT _InitSource() override
STDMETHODIMP GetClassID(CLSID *pClassID) override
BOOL _CreateRepairedNetscapeRegistration(HKEY hKey)
HRESULT _InitSource() override
STDMETHODIMP GetClassID(CLSID *pClassID) override
STDMETHODIMP QueryInterface(REFIID riid, PVOID *ppv) override
STDMETHODIMP QueryObject(ASSOCQUERY query, PCWSTR key, REFIID riid, PVOID *ppvObj) override
STDMETHODIMP SetSource(IQuerySourceOld *pSource) override
STDMETHODIMP QueryDirect(ASSOCQUERY query, PCWSTR key, FLAGGED_BYTE_BLOB **ppBlob) override
STDMETHODIMP QueryExists(ASSOCQUERY query, PCWSTR key) override
IQuerySourceOld * m_pSource
HRESULT _QueryKeyValAny(QUERY_CALLBACK callback, const QUERYKEYVAL *pItems, UINT cItems, IQuerySourceOld *pQS, ASSOCQUERY query, PCWSTR valueName, PVOID pValue)
STDMETHODIMP_(ULONG) AddRef() override
STDMETHODIMP_(ULONG) Release() override
STDMETHODIMP QueryString(ASSOCQUERY query, PCWSTR key, PWSTR *ppszValue) override
STDMETHODIMP QueryDword(ASSOCQUERY query, PCWSTR key, DWORD *pdwValue) override
HRESULT _QuerySourceAny(QUERY_CALLBACK callback, IQuerySourceOld *pSource, DWORD dwFlags, ASSOCQUERY query, PCWSTR valueName, PVOID pValue)
virtual UINT _GetQueryKeyVal(const QUERYKEYVAL **ppItems)
STDMETHODIMP GetSource(REFIID riid, PVOID *ppSource) override
HRESULT _InitSource() override
STDMETHODIMP QueryString(ASSOCQUERY query, PCWSTR key, PWSTR *ppszValue) override
STDMETHODIMP GetClassID(CLSID *pClassID) override
UINT _GetQueryKeyVal(const QUERYKEYVAL **ppItems) override
HRESULT _GetVerbDelegate(PCWSTR pszSrc, IAssociationElementOld **ppElement) override
HRESULT _InitSource() override
STDMETHODIMP GetSource(REFIID riid, PVOID *ppSource) override
STDMETHODIMP GetClassID(CLSID *pClassID) override
HRESULT _InitSource() override
STDMETHODIMP GetClassID(CLSID *pClassID) override
BOOL _UseEnumForDefaultVerb() override
STDMETHODIMP QueryString(ASSOCQUERY query, PCWSTR key, PWSTR *ppszValue) override
IQuerySourceOld * m_pSource2
~CAssocProgidElement() override
STDMETHODIMP QueryObject(ASSOCQUERY query, PCWSTR key, REFIID riid, PVOID *ppvObj) override
STDMETHODIMP SetString(PCWSTR psz) override
STDMETHODIMP GetClassID(CLSID *pClassID) override
virtual BOOL _IsAppSource()
STDMETHODIMP QueryDword(ASSOCQUERY query, PCWSTR key, DWORD *pdwValue) override
STDMETHODIMP GetString(PWSTR *ppsz) override
virtual HRESULT _InitSource()
UINT _GetQueryKeyVal(const QUERYKEYVAL **ppItems) override
STDMETHODIMP_(ULONG) AddRef() override
virtual BOOL _UseEnumForDefaultVerb()
STDMETHODIMP QueryExists(ASSOCQUERY query, PCWSTR key) override
STDMETHODIMP QueryInterface(REFIID riid, PVOID *ppv) override
STDMETHODIMP QueryDirect(ASSOCQUERY query, PCWSTR key, FLAGGED_BYTE_BLOB **ppBlob) override
HRESULT _DefaultVerbSource(IQuerySourceOld **ppSource)
virtual HRESULT _GetVerbDelegate(PCWSTR pszSrc, IAssociationElementOld **ppElement)
STDMETHODIMP QueryString(ASSOCQUERY query, PCWSTR key, PWSTR *ppszValue) override
STDMETHODIMP_(ULONG) Release() override
UINT _GetQueryKeyVal(const QUERYKEYVAL **ppItems) override
CAssocShellVerbElement(BOOL bAppSource)
STDMETHODIMP QueryString(ASSOCQUERY query, PCWSTR key, PWSTR *ppwsz) override
STDMETHODIMP QueryObject(ASSOCQUERY query, PCWSTR key, REFIID riid, PVOID *ppvObj) override
HRESULT _GetAppDelegate(REFIID riid, PVOID *ppv)
STDMETHODIMP QueryString(ASSOCQUERY query, PCWSTR key, PWSTR *ppszValue) override
STDMETHODIMP GetClassID(CLSID *pClassID) override
HRESULT _InitSource() override
HRESULT _InitSource() override
STDMETHODIMP GetClassID(CLSID *pClassID) override
static LSTATUS(WINAPI *pRegDeleteTreeW)(HKEY
_Check_return_ _In_ PQUERY_INTERFACE QueryInterface
LONG WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ LPDWORD lpdwDisposition)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
LSTATUS WINAPI RegQueryValueW(HKEY hkey, LPCWSTR name, LPWSTR data, LPLONG count)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
void WINAPI CoTaskMemFree(void *ptr)
int WINAPI StrCSpnW(LPCWSTR lpszStr, LPCWSTR lpszMatch)
LPWSTR WINAPI StrChrW(LPCWSTR lpszStr, WCHAR ch)
INT WINAPI StrCmpNW(LPCWSTR lpszStr, LPCWSTR lpszComp, INT iLen)
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
int WINAPI lstrcmpiW(LPCWSTR str1, LPCWSTR str2)
void WINAPI PathRemoveExtensionW(WCHAR *path)
void WINAPI PathUnquoteSpacesW(WCHAR *path)
WCHAR *WINAPI PathFindFileNameW(const WCHAR *path)
void WINAPI PathStripPathW(WCHAR *path)
int WINAPI PathParseIconLocationW(WCHAR *path)
HRESULT WINAPI PathCchAddExtension(WCHAR *path, SIZE_T size, const WCHAR *extension)
BOOL WINAPI PathFileExistsW(const WCHAR *path)
BOOL WINAPI PathIsFileSpecW(const WCHAR *path)
HRESULT WINAPI PathCchCombineEx(WCHAR *out, SIZE_T size, const WCHAR *path1, const WCHAR *path2, DWORD flags)
void WINAPI PathQuoteSpacesW(WCHAR *path)
LPWSTR WINAPI CharUpperW(WCHAR *str)
HRESULT WINAPI SHLoadIndirectString(const WCHAR *src, WCHAR *dst, UINT dst_len, void **reserved)
int WINAPI StrCmpIW(const WCHAR *str, const WCHAR *comp)
HRESULT WINAPI SHStrDupW(const WCHAR *src, WCHAR **dest)
DWORD WINAPI SHGetValueW(HKEY hkey, const WCHAR *subkey, const WCHAR *value, DWORD *type, void *data, DWORD *data_len)
DWORD WINAPI SHDeleteKeyW(HKEY hkey, const WCHAR *subkey)
HRESULT WINAPI AssocGetPerceivedType(LPCWSTR lpszExt, PERCEIVED *lpType, INT *lpFlag, LPWSTR *lppszType)
HRESULT WINAPI SKGetValueW(DWORD flags, LPCWSTR subkey, LPCWSTR value, DWORD *type, void *data, DWORD *count)
HRESULT WINAPI SKSetValueW(DWORD flags, LPCWSTR subkey, LPCWSTR value, DWORD type, void *data, DWORD count)
BOOL WINAPI PathFileExistsAndAttributesW(LPCWSTR lpszPath, DWORD *dwAttr)
BOOL WINAPI SHGetFileDescriptionW(_In_ PCWSTR pszPath, _In_opt_ PCWSTR pszVerKey, _In_opt_ PCWSTR pszDisplayName, _Out_opt_ PWSTR pszOut, _Inout_ PUINT pcchOut)
#define FAILED_UNEXPECTEDLY
static HRESULT _AssocOpenRegKey(HKEY hKey, PCWSTR lpSubKey, PHKEY phkResult, BOOL bCreate)
static HRESULT _GetFileTypeName(PWSTR lpsz, PWSTR *ppwsz)
static LSTATUS _RegQueryString(HKEY hKey, PCWSTR lpSubKey, PWSTR lpData, LONG cchData)
static const QUERYKEYVAL g_shellVerbKeyVals[]
static HRESULT CALLBACK _QuerySourceString(IQuerySourceOld *pSource, ASSOCQUERY query, PCWSTR keyName, PCWSTR valueName, PVOID pValue)
static HRESULT _QuerySourceCreateFromKey(HKEY hKey, PCWSTR lpSubKey, BOOL bCreate, IQuerySourceOld **ppSource)
struct QUERYKEYVAL * PQUERYKEYVAL
static const QUERYKEYVAL g_progidKeyVals[2]
static void _MakeApplicationsKey(PCWSTR pszPath, PWSTR pszDest, UINT cchDest)
static LSTATUS _RegSetVolatileString(HKEY hKey, PCWSTR lpSubKey, PCWSTR lpString)
static HRESULT CALLBACK _QuerySourceExists(IQuerySourceOld *pSource, ASSOCQUERY query, PCWSTR keyName, PCWSTR valueName, PVOID pValue)
HRESULT(CALLBACK * QUERY_CALLBACK)(IQuerySourceOld *, ASSOCQUERY query, PCWSTR keyName, PCWSTR valueName, PVOID pValue)
static HRESULT CALLBACK _QuerySourceDirect(IQuerySourceOld *pSource, ASSOCQUERY query, PCWSTR keyName, PCWSTR valueName, PVOID pValue)
static BOOL _ParamIsApp(PCWSTR psz)
static const QUERYKEYVAL g_perceivedKeyVals[]
static HRESULT SHAllocMUI(PWSTR *ppwsz)
static HKEY _OpenProgidKey(PCWSTR psz)
static const QUERYKEYVAL g_shellAppKeyVals[]
static HRESULT _SHAllocLoadString(HINSTANCE hInstance, UINT uID, PWSTR *ppwsz)
EXTERN_C HRESULT WINAPI AssocCreateElement(_In_ REFCLSID rclsid, _In_ REFIID riid, _Outptr_ PVOID *ppvObj)
static HRESULT QSOpen2(IQuerySourceOld *pSource, PCWSTR key, PCWSTR pszSrc, BOOL bCreate, IQuerySourceOld **ppSource)
static const QUERYKEYVAL * _FindKeyVal(ASSOCQUERY query, const QUERYKEYVAL *pItems, UINT cItems)
static HRESULT _QuerySourceCreateFromKey2(HKEY hKey, PCWSTR key1, PCWSTR key2, IQuerySourceOld **ppSource)
static HRESULT CALLBACK _QuerySourceDword(IQuerySourceOld *pSource, ASSOCQUERY query, PCWSTR keyName, PCWSTR valueName, PVOID pValue)
static HRESULT _PathFileExists(PCWSTR lpFileName)
static const QUERYKEYVAL g_shellKeyVals[]
static HRESULT _ExeFromCmd(PCWSTR pszCmdTemplate, PWSTR *ppszApplication)
#define ASSOCQUERY_DELEGATE
#define ASSOCQUERY_CONTENT_TYPE
#define ASSOCQUERY_COMMAND_COMMAND
#define ASSOCQUERY_DDEEXEC
#define ASSOCQUERY_SHELLEX
#define ASSOCQUERY_DDEEXEC_TOPIC
#define ASSOCQUERY_VERB_FRIENDLYAPPNAME
#define ASSOCQUERY_DDEEXEC_IFEXEC
#define ASSOCQUERY_LOCALIZEDSTRING
#define ASSOCQUERY_FRIENDLYAPPNAME
#define ASSOCQUERY_DEFAULTICON
#define ASSOCQUERY_PROGID
#define ASSOCQUERY_OBJECT_EV_1
#define ASSOCQUERY_APPKEY_FRIENDLYAPPNAME
#define ASSOCQUERY_DDEEXEC_APPLICATION
#define ASSOCQUERY_NOACTIVATEHANDLER
#define ASSOCQUERY_COMMAND
EXTERN_C HRESULT _PathCopyExeAndTrimWhiteSpaces(PWSTR pszBuff, size_t cchBuff, PCWSTR pszSrc, size_t cchSrc)
EXTERN_C HRESULT _PathFindInSystem(_Inout_ PWSTR pszPath, _In_ UINT cchPath)
EXTERN_C HRESULT WINAPI SHEvaluateSystemCommandTemplate(_In_ PCWSTR pszCmdTemplate, _Outptr_ PWSTR *ppszApplication, _Outptr_opt_ PWSTR *ppszCommandLine, _Outptr_opt_ PWSTR *ppszParameters)
#define SHELL32_CAssocElement_Version
GLuint GLuint GLsizei GLenum type
GLuint64EXT GLuint GLuint GLenum GLenum GLuint GLuint GLenum GLuint GLuint key1
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
HLOCAL NTAPI LocalFree(HLOCAL hMem)
HRESULT Next([in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] LPOLESTR *rgelt, [out] ULONG *pceltFetched)
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
#define ERROR_FILE_NOT_FOUND
static IPrintDialogCallback callback
static ULONG WINAPI AddRef(IStream *iface)
static int int const SCRIPT_CONTROL const SCRIPT_STATE SCRIPT_ITEM * pItems
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
#define FILE_ATTRIBUTE_DIRECTORY
#define REG_OPENED_EXISTING_KEY
#define REG_OPTION_VOLATILE
_In_opt_ _In_opt_ _In_ _In_ DWORD cbData
_In_opt_ LPCSTR _In_opt_ LPCSTR pszValue
#define PERCEIVEDFLAG_NATIVESUPPORT
EXTERN_C HRESULT WINAPI QuerySourceCreateFromKey(_In_ HKEY hKey, _In_opt_ PCWSTR lpSubKey, _In_ BOOL bCreate, _In_ REFIID riid, _Outptr_ PVOID *ppv)
static __inline const char * wine_dbgstr_guid(const GUID *id)
#define _WIN32_WINNT_WINXP
#define IID_IObjectWithQuerySourceOld
_In_ int _In_ BOOL bCreate
#define ASSOCQUERY_DIRECT
#define ASSOCQUERY_STRING
#define ASSOCQUERY_INDIRECT
#define ASSOCQUERY_EXTRA_VERB
#define ASSOCQUERY_EXTRA_NON_VERB
#define ASSOCQUERY_FALLBACK
#define ASSOCQUERY_OBJECT
static BOOL PathIsAbsolute(_In_ PCWSTR pszPath)
enum tagPERCEIVED PERCEIVED
STRSAFEAPI StringCchPrintfW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszFormat,...)
STRSAFEAPI StringCchCatW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
STRSAFEAPI StringCchCopyW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
_In_ PSID _Out_writes_to_opt_ cchName LPSTR _Inout_ LPDWORD cchName
static HRESULT HRESULT_FROM_WIN32(unsigned int x)
#define ERROR_NO_ASSOCIATION
#define CLASS_E_CLASSNOTAVAILABLE
#define HKEY_LOCAL_MACHINE
#define HKEY_CURRENT_USER
#define HKEY_CLASSES_ROOT
#define IID_PPV_ARG(Itype, ppType)