開発環境 |
Microsoft Visual Studio Community 2017 |
実行環境 |
Windows 10 Home (64bit) |
プロジェクトの種類 |
Visual C++/空のプロジェクト |
プロジェクト名 |
dw_fontlist |
dw_fontlist.cpp
// Unicode文字セット
#pragma comment(lib, "dwrite")
#include <dwrite.h>
#include <stdio.h>
template <class T> inline void SafeRelease(T **ppT)
{
if (*ppT) {
(*ppT)->Release();
*ppT = NULL;
}
}
int wmain()
{
HRESULT hr;
IDWriteFactory* pDWriteFactory = NULL;
hr = DWriteCreateFactory(DWRITE_FACTORY_TYPE_SHARED, __uuidof(IDWriteFactory),
reinterpret_cast<IUnknown**>(&pDWriteFactory));
IDWriteFontCollection* pFontCollection = NULL;
hr = pDWriteFactory->GetSystemFontCollection(&pFontCollection);
UINT32 familyCount = pFontCollection->GetFontFamilyCount();
wprintf(L"%u\n", familyCount);
for (UINT32 i = 0; i < familyCount; i++) {
IDWriteFontFamily* pFontFamily = NULL;
hr = pFontCollection->GetFontFamily(i, &pFontFamily);
IDWriteLocalizedStrings* pFamilyNames = NULL;
hr = pFontFamily->GetFamilyNames(&pFamilyNames);
WCHAR name[32];
hr = pFamilyNames->GetString(0, name, _countof(name));
wprintf(L"%u %s\n", i, name);
SafeRelease(&pFamilyNames);
SafeRelease(&pFontFamily);
}
SafeRelease(&pFontCollection);
SafeRelease(&pDWriteFactory);
return 0;
}
最終更新:2019年01月26日 21:00