12 #define WIN32_LEAN_AND_MEAN 23 #define SCHEMA_STRINGS 24 #define TMT_ENUMDEF (0x0D) // undocumented 25 #define TMT_ENUMVAL (0x0E) // undocumented 26 #define TMT_ENUM (0x0F) // undocumented 76 public std::unary_function<tm_property_t, void>
81 switch(property_.
type)
95 default:
return L"<unknown>";
109 property_.
name.c_str(),
117 public std::unary_function<tm_parts_t::value_type, void>
128 part_.second.
name.c_str(),
132 part_.second.states->first.c_str()
139 public std::unary_function<tm_classes_t::value_type, void>
150 class_.second.begin(),
157 class schema_scan:
public std::unary_function<struct TMPROPINFO, void>
178 bool has_suffix(
const std::wstring& name_,
const std::wstring& suffix_)
180 if(name_.length() <= suffix_.length())
return false;
184 name_.end() - suffix_.length(),
195 static const std::wstring parts_suffix(
L"PARTS");
196 static const std::wstring states_suffix(
L"STATES");
198 std::wstring
name(prop_.pszName);
211 std::wstring(
name.begin(),
name.end() - parts_suffix.length())
223 std::wstring(
name.begin(),
name.end() - states_suffix.length())
250 (*
m_cur.p_class)[prop_.sEnumVal] = part;
257 (*
m_cur.p_states)[prop_.sEnumVal] =
name;
262 else if(prop_.sEnumVal == prop_.bPrimVal)
276 property.id = prop_.sEnumVal;
277 property.type = prop_.bPrimVal;
296 {
L"BUTTON", 0,
NULL },
304 {
L"EXPLORERBAR", 0,
NULL },
312 {
L"HEADER", 0,
NULL },
318 {
L"MENU", 0,
NULL },
319 {
NULL, MP_MENUBARDROPDOWN,
L"MENU" },
320 {
NULL, MP_MENUBARITEM,
L"MENU" },
321 {
NULL, MP_CHEVRON,
L"MENU" },
322 {
NULL, MP_MENUDROPDOWN,
L"MENU" },
323 {
NULL, MP_MENUITEM,
L"MENU" },
324 {
NULL, MP_SEPARATOR,
L"MENU" },
326 {
L"PAGE", 0,
NULL },
332 {
L"SCROLLBAR", 0,
NULL },
341 {
L"SPIN", 0,
NULL },
346 {
L"STARTPANEL", 0,
NULL },
358 {
L"TOOLBAR", 0,
NULL },
365 {
L"TOOLTIP", 0,
NULL },
371 {
L"TRACKBAR", 0,
NULL },
382 {
L"TREEVIEW", 0,
NULL },
385 {
L"WINDOW", 0,
NULL },
416 class state_link:
public std::unary_function<struct state_mapping_t, void>
440 if(part ==
m_class->second.end())
return;
443 part->second.states = states;
452 struct TMSCHEMAINFO
const &
schema = *GetSchemaInfo();
481 const std::wstring& class_name =
p->first;
489 htheme_t(
HTHEME handle_): m_handle(handle_) { }
492 operator HTHEME() {
return m_handle; }
502 L"OpenThemeData(\"%s\") failed, error %d\n",
616 if(enumval ==
p->enum_type->second.end())
tm_enums_t::iterator enum_type
bool has_suffix(const std::wstring &name_, const std::wstring &suffix_)
int WINAPI GetThemeSysSize(HTHEME hTheme, int iSizeID)
std::map< int, tm_part_t > tm_parts_t
void operator()(const tm_classes_t::value_type &class_)
HRESULT WINAPI GetThemeSysInt(HTHEME hTheme, int iIntID, int *piValue)
static HTHEME(WINAPI *pOpenThemeDataEx)(HWND
static tm_properties_t tm_properties
DWORD WINAPI GetLastError(VOID)
static const tmdump::state_mapping_t state_map[]
void operator()(const struct state_mapping_t &mapping_)
wchar_t const * type_name(const tm_property_t &property_)
basic_ostream< _CharT, _Traits > &_STLP_CALL endl(basic_ostream< _CharT, _Traits > &__os)
class_print(std::FILE *out_)
HRESULT WINAPI GetThemeSysFont(HTHEME hTheme, int iFontID, LOGFONTW *plf)
union tmdump::schema_scan::@1523 m_cur
void WINAPI SetThemeAppProperties(DWORD dwFlags)
_Check_return_opt_ _CRTIMP int __cdecl fwprintf(_Inout_ FILE *_File, _In_z_ _Printf_format_string_ const wchar_t *_Format,...)
enum tmdump::schema_scan::@1522 m_state
static tm_enums_t tm_enums
static tm_classes_t tm_classes
void operator()(const tm_parts_t::value_type &part_)
std::list< tm_property_t > tm_properties_t
std::map< std::wstring, tm_parts_t > tm_classes_t
property_print(std::FILE *out_)
_STLP_DECLSPEC _Stl_aligned_buffer< ostream > cerr
_STLP_BEGIN_NAMESPACE _STLP_INLINE_LOOP _Function for_each(_InputIter __first, _InputIter __last, _Function __f)
HTHEME WINAPI OpenThemeData(HWND hwnd, LPCWSTR classlist)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
COLORREF WINAPI GetThemeSysColor(HTHEME hTheme, int iColorID)
tm_classes_t::iterator m_class
std::map< std::wstring, tm_states_t > tm_state_enums_t
WDF_CHILD_LIST_ITERATOR iterator
std::map< int, std::wstring > tm_states_t
int main(int argc, char *argv[])
tm_state_enums_t::iterator states
void operator()(const tm_property_t &property_)
void operator()(const struct TMPROPINFO &prop_)
part_print(std::FILE *out_)
HRESULT WINAPI GetThemeSysString(HTHEME hTheme, int iStringID, LPWSTR pszStringBuff, int cchMaxStringChars)
std::map< std::wstring, tm_enum_t > tm_enums_t
VOID WINAPI InitCommonControls(void)
_Check_return_opt_ _CRTIMP wint_t __cdecl fputwc(_In_ wchar_t _Ch, _Inout_ FILE *_File)
static tm_state_enums_t tm_state_enums
BOOL WINAPI GetThemeSysBool(HTHEME hTheme, int iBoolID)
std::map< int, std::wstring > tm_enum_t
HRESULT WINAPI CloseThemeData(HTHEME hTheme)
GLuint const GLchar * name