13#ifndef SHCIDS_ALLFIELDS
14#define SHCIDS_ALLFIELDS 0x80000000L
161 if (curpidl->mkid.cb != 0)
163 ERR(
"ERROR, unhandled PIDL!\n");
174 ERR(
"ERROR, not a font PIDL!\n");
182 ERR(
"Unable to query info about %S\n", fontEntry->
Name);
204 ERR(
"GetDateFormatA failed\n");
214 ERR(
"IDS_COL_ATTR_LETTERS does not contain 5 letters!\n");
275 if (!fontEntry1 || !fontEntry2)
290 if (!info1 || !info2)
292 ERR(
"Unable to find font %S or %S in cache!\n", fontEntry1->
Name, fontEntry2->
Name);
307 result = (
int)info1->FileSize().HighPart - info2->FileSize().HighPart;
309 result = (
int)info1->FileSize().LowPart - info2->FileSize().LowPart;
316 result = (
int)info1->FileAttributes() - info2->FileAttributes();
319 ERR(
"Unimplemented column %u\n",
column);
341 TRACE(
"IContextMenu\n");
361 if (!rgfInOut || !cidl || !apidl)
365 while (cidl > 0 && *apidl)
371 rgf |= ( SFGAO_HASPROPSHEET | SFGAO_CANCOPY | SFGAO_FILESYSTEM);
391 ERR(
"cidl: %u\n", cidl);
427 if (
riid == IID_IContextMenu ||
428 riid == IID_IContextMenu2 ||
429 riid == IID_IContextMenu3)
433 else if (
riid == IID_IExtractIconA ||
riid == IID_IExtractIconW)
449 ERR(
"IID_IExtractIcon with cidl != 1 UNIMPLEMENTED\n");
464 *ppvOut = pDataObj.
Detach();
468 else if (
riid == IID_IDropTarget)
486 if (curpidl->mkid.cb != 0)
488 ERR(
"ERROR, unhandled PIDL!\n");
501 return SHSetStrRet(strRet,
File);
505 return SHSetStrRet(strRet, fontEntry->
Name);
532 ERR(
"Unable to extract path from pidl\n");
539 ERR(
"Unable to get fonts path (0x%x)\n",
hr);
545 ERR(
"CFontExt View initializing on unexpected folder: '%S'\n", PidlPath);
HRESULT _CDataObject_CreateInstance(PCIDLIST_ABSOLUTE folder, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, REFIID riid, LPVOID *ppvOut)
HRESULT WINAPI SHCreateShellFolderView(const SFV_CREATE *pcsfv, IShellView **ppsv)
HRESULT _CEnumFonts_CreateInstance(CFontExt *zip, DWORD flags, REFIID riid, LPVOID *ppvOut)
bool GetInterfaceName(const WCHAR *InterfaceString, WCHAR *buf, size_t size)
static FolderViewColumns g_ColumnDefs[]
WCHAR * g2s(REFCLSID iid)
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
int GetLength() const noexcept
BOOL LoadString(_In_ UINT nID)
CStringW Filename(CFontInfo *info, bool alwaysFullPath=false)
CFontInfo * Find(const FontPidlEntry *fontEntry)
void SetFontDir(const LPCWSTR Path)
static HRESULT CALLBACK MenuCallBack(IShellFolder *psf, HWND hwndOwner, IDataObject *pdtobj, UINT uMsg, WPARAM wParam, LPARAM lParam)
STDMETHODIMP GetUIObjectOf(HWND hwndOwner, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, REFIID riid, UINT *prgfInOut, LPVOID *ppvOut) override
STDMETHODIMP GetDefaultColumn(DWORD dwReserved, ULONG *pSort, ULONG *pDisplay) override
STDMETHODIMP DragEnter(IDataObject *pDataObj, DWORD grfKeyState, POINTL pt, DWORD *pdwEffect) override
STDMETHODIMP GetDefaultColumnState(UINT iColumn, SHCOLSTATEF *pcsFlags) override
STDMETHODIMP GetCurFolder(LPITEMIDLIST *ppidl) override
STDMETHODIMP GetDetailsEx(PCUITEMID_CHILD pidl, const SHCOLUMNID *pscid, VARIANT *pv) override
STDMETHODIMP GetDetailsOf(PCUITEMID_CHILD pidl, UINT iColumn, SHELLDETAILS *psd) override
STDMETHODIMP DragOver(DWORD grfKeyState, POINTL pt, DWORD *pdwEffect) override
STDMETHODIMP EnumObjects(HWND hwndOwner, DWORD dwFlags, LPENUMIDLIST *ppEnumIDList) override
STDMETHODIMP GetDefaultSearchGUID(GUID *lpguid) override
CComHeapPtr< ITEMIDLIST > m_Folder
STDMETHODIMP MapColumnToSCID(UINT iColumn, SHCOLUMNID *pscid) override
STDMETHODIMP SetNameOf(HWND hwndOwner, PCUITEMID_CHILD pidl, LPCOLESTR lpName, DWORD dwFlags, PITEMID_CHILD *pPidlOut) override
STDMETHODIMP CreateViewObject(HWND hwndOwner, REFIID riid, LPVOID *ppvOut) override
STDMETHODIMP GetDisplayNameOf(PCUITEMID_CHILD pidl, DWORD dwFlags, LPSTRRET strRet) override
STDMETHODIMP BindToObject(PCUIDLIST_RELATIVE pidl, LPBC pbcReserved, REFIID riid, LPVOID *ppvOut) override
STDMETHODIMP EnumSearches(IEnumExtraSearch **ppenum) override
STDMETHODIMP GetAttributesOf(UINT cidl, PCUITEMID_CHILD_ARRAY apidl, DWORD *rgfInOut) override
STDMETHODIMP ParseDisplayName(HWND hwndOwner, LPBC pbc, LPOLESTR lpszDisplayName, DWORD *pchEaten, PIDLIST_RELATIVE *ppidl, DWORD *pdwAttributes) override
STDMETHODIMP GetClassID(CLSID *lpClassId) override
STDMETHODIMP Drop(IDataObject *pDataObj, DWORD grfKeyState, POINTL pt, DWORD *pdwEffect) override
HRESULT CreateForegroundMenu(HWND hwndOwner, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, LPVOID *ppvOut)
STDMETHODIMP Initialize(LPCITEMIDLIST pidl) override
STDMETHODIMP BindToStorage(PCUIDLIST_RELATIVE pidl, LPBC pbcReserved, REFIID riid, LPVOID *ppvOut) override
void SetViewWindow(HWND hwndView)
STDMETHODIMP DragLeave() override
STDMETHODIMP CompareIDs(LPARAM lParam, PCUIDLIST_RELATIVE pidl1, PCUIDLIST_RELATIVE pidl2) override
#define IDS_INSTALL_FAILED
#define IDS_COL_ATTR_LETTERS
#define IDS_REACTOS_FONTS_FOLDER
#define DFM_GETDEFSTATICID
#define DFM_MERGECONTEXTMENU
#define DFM_INVOKECOMMAND
LSTATUS WINAPI RegGetValueW(HKEY hKey, LPCWSTR pszSubKey, LPCWSTR pszValue, DWORD dwFlags, LPDWORD pdwType, PVOID pvData, LPDWORD pcbData)
#define FILE_ATTRIBUTE_NORMAL
BOOL WINAPI FileTimeToSystemTime(IN CONST FILETIME *lpFileTime, OUT LPSYSTEMTIME lpSystemTime)
LONG WINAPI CompareFileTime(IN CONST FILETIME *lpFileTime1, IN CONST FILETIME *lpFileTime2)
WCHAR *WINAPI PathFindFileNameW(const WCHAR *path)
LPWSTR WINAPI PathFindExtensionW(const WCHAR *path)
int WINAPI StrCmpIW(const WCHAR *str, const WCHAR *comp)
HRESULT WINAPI OleGetClipboard(IDataObject **obj)
HRESULT WINAPI DECLSPEC_HOTPATCH ProgIDFromCLSID(REFCLSID clsid, LPOLESTR *ppszProgID)
INT WINAPI StringFromGUID2(REFGUID id, LPOLESTR str, INT cmax)
HRESULT WINAPI SHGetFolderPathW(HWND hwndOwner, int nFolder, HANDLE hToken, DWORD dwFlags, LPWSTR pszPath)
LPSTR WINAPI StrFormatKBSizeA(LONGLONG llBytes, LPSTR lpszDest, UINT cchMax)
#define FAILED_UNEXPECTEDLY
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
const GUID CLSID_CFontExt
HRESULT InstallFontsFromDataObject(HWND hwndView, IDataObject *pDataObj)
LSTATUS AddClassKeyToArray(const WCHAR *szClass, HKEY *array, UINT *cKeys)
BOOL CheckDataObject(IDataObject *pDataObj)
const FontPidlEntry * _FontFromIL(LPCITEMIDLIST pidl)
GLenum GLuint GLenum GLsizei const GLchar * buf
VOID WINAPI CoTaskMemFree(LPVOID ptr)
const DWORD DROPEFFECT_NONE
const DWORD DROPEFFECT_COPY
#define ERROR_FILE_NOT_FOUND
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
static const struct access_res create[16]
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
#define FILE_ATTRIBUTE_READONLY
#define FILE_ATTRIBUTE_COMPRESSED
#define FILE_ATTRIBUTE_HIDDEN
#define FILE_ATTRIBUTE_SYSTEM
#define FILE_ATTRIBUTE_ARCHIVE
#define LOCALE_USER_DEFAULT
interface IBindCtx * LPBC
const GUID IID_IDataObject
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
BOOL WINAPI SHGetPathFromIDListW(LPCITEMIDLIST pidl, LPWSTR pszPath)
LPITEMIDLIST WINAPI ILGetNext(LPCITEMIDLIST pidl)
#define IsEqualIID(riid1, riid2)
#define MAKE_COMPARE_HRESULT(x)
ITEMIDLIST UNALIGNED * LPITEMIDLIST
const PCUITEMID_CHILD * PCUITEMID_CHILD_ARRAY
const ITEMID_CHILD UNALIGNED * PCUITEMID_CHILD
const ITEMIDLIST_RELATIVE UNALIGNED * PCUIDLIST_RELATIVE
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
STRSAFEAPI StringCchPrintfW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszFormat,...)
STRSAFEAPI StringCchCatW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
static HRESULT HRESULT_FROM_WIN32(unsigned int x)
#define HKEY_CLASSES_ROOT
int WINAPI MessageBoxW(_In_opt_ HWND hWnd, _In_opt_ LPCWSTR lpText, _In_opt_ LPCWSTR lpCaption, _In_ UINT uType)
LRESULT WINAPI SendMessageTimeoutW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM, _In_ UINT, _In_ UINT, _Out_opt_ PDWORD_PTR)
#define MB_ICONINFORMATION
#define IID_PPV_ARG(Itype, ppType)