13const GUID CLSID_CFontExt = { 0xbd84b380, 0x8ca2, 0x1069, { 0xab, 0x1d, 0x08, 0x00, 0x09, 0x48, 0xf5, 0x34 } };
54 static const char DesktopIniContents[] =
"[.ShellClassInfo]\r\n"
55 "CLSID={BD84B380-8CA2-1069-AB1D-08000948F534}\r\n"
56 "IconResource=%SystemRoot%\\system32\\shell32.dll,-39\r\n";
79 ERR(
"Unable to get attributes for fonts folder (%d)\n",
GetLastError());
111 for (
UINT n = 0;
n < cidl; ++
n)
117 ERR(
"Out of memory\n");
135 ERR(
"CRegKey::Open failed\n");
161 ERR(
"AddFontResourceW('%S') failed\n", pszFontPath);
173 ERR(
"DoGetFontTitle failed (err=0x%x)!\n",
hr);
183 ERR(
"CopyFileW('%S', '%S') failed\n", pszFontPath, szDestFile);
189 (
const BYTE *)pszFileTitle, cbData);
192 ERR(
"RegSetValueExW failed with %ld\n", nError);
213 LPWSTR pszBuffer = strFontName.GetBuffer(cbInfo /
sizeof(
WCHAR));
216 strFontName.ReleaseBuffer();
223 ERR(
"GetFontResourceInfoW failed (err: %u)\n",
dwErr);
PRTL_UNICODE_STRING_BUFFER Path
ACPI_SIZE strlen(const char *String)
static DWORD const LPVOID const lpReserved
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
size_t Add(INARGTYPE element)
HRESULT DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
HRESULT DllUnregisterServer(BOOL bUnRegTypeLib=TRUE)
HRESULT Init(_ATL_OBJMAP_ENTRY *p, HINSTANCE, const GUID *plibid)
HRESULT DllCanUnloadNow()
HRESULT DllRegisterServer(BOOL bRegTypeLib=TRUE)
LONG Open(HKEY hKeyParent, LPCTSTR lpszKeyName, REGSAM samDesired=KEY_READ|KEY_WRITE) noexcept
const CStringW & FontPath() const
void Init(_ATL_OBJMAP_ENTRY *p, HINSTANCE h, const GUID *plibid)
BOOL IsFontDotExt(LPCWSTR pchDotExt)
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
#define DLL_PROCESS_ATTACH
#define DLL_PROCESS_DETACH
#define INVALID_HANDLE_VALUE
#define FAILED_UNEXPECTEDLY(hr)
BOOL WINAPI CopyFileW(IN LPCWSTR lpExistingFileName, IN LPCWSTR lpNewFileName, IN BOOL bFailIfExists)
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
DWORD WINAPI GetFileAttributesW(LPCWSTR lpFileName)
BOOL WINAPI SetFileAttributesW(LPCWSTR lpFileName, DWORD dwFileAttributes)
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
BOOL WINAPI DisableThreadLibraryCalls(IN HMODULE hLibModule)
HRESULT WINAPI SHGetFolderPathW(HWND hwndOwner, int nFolder, HANDLE hToken, DWORD dwFlags, LPWSTR pszPath)
LPWSTR WINAPI PathFindExtensionW(LPCWSTR lpszPath)
BOOL WINAPI PathIsDirectoryW(LPCWSTR lpszPath)
EXTERN_C BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
HRESULT DoInstallFontFile(_Out_ CStringW &strMsg, _In_ PCWSTR pszFontPath, _In_ PCWSTR pszFontsDir, _In_ HKEY hkeyFonts)
STDAPI DllRegisterServer()
const GUID CLSID_CFontExt
STDAPI DllUnregisterServer()
STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
HRESULT InstallFontFiles(_Out_ CStringW &strMsg, _In_ PCUIDLIST_ABSOLUTE pidlParent, _In_ UINT cidl, _In_ PCUITEMID_CHILD_ARRAY apidl)
HRESULT DoGetFontTitle(_In_ LPCWSTR pszFontPath, _Out_ CStringW &strFontName)
BOOL WINAPI GetFontResourceInfoW(LPCWSTR lpFileName, DWORD *pdwBufSize, void *lpBuffer, DWORD dwType)
GLfloat GLfloat GLfloat GLfloat h
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define OBJECT_ENTRY(clsid, class)
#define BEGIN_OBJECT_MAP(x)
#define FILE_ATTRIBUTE_HIDDEN
#define FILE_ATTRIBUTE_SYSTEM
LPITEMIDLIST WINAPI ILCombine(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
BOOL WINAPI SHGetPathFromIDListW(LPCITEMIDLIST pidl, LPWSTR pszPath)
const ITEMIDLIST_ABSOLUTE UNALIGNED * PCUIDLIST_ABSOLUTE
const PCUITEMID_CHILD * PCUITEMID_CHILD_ARRAY
STRSAFEAPI StringCchCopyW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
#define INVALID_FILE_ATTRIBUTES
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesWritten
DWORD WINAPI GetLastError(void)
#define HRESULT_FROM_WIN32(x)
int WINAPI AddFontResourceW(_In_ LPCWSTR pszFilename)
BOOL WINAPI RemoveFontResourceW(_In_ LPCWSTR)