// SDB-CGEN V2.6.2
#include <ctype.h>
#include <stdio.h>
#include <string.h>

struct kv { const char *name; const char *value; };
static const struct kv kvs[] = {
// gcc -DMAIN=1 gdi.c ; ./a.out > gdi.h
	{"1", "SETBKCOLOR"},
	{"10", "SETTEXTJUSTIFICATION"},
	{"100", "LINEDDA"},
	{"101", "OFFSETRGN"},
	{"102", "OFFSETVISRGN"},
	{"103", "PTVISIBLE"},
	{"104", "RECTVISIBLE"},
	{"105", "SELECTVISRGN"},
	{"106", "SETBITMAPBITS"},
	{"11", "SETWINDOWORG"},
	{"117", "SETDCORG"},
	{"118", "INTERNALCREATEDC"},
	{"119", "ADDFONTRESOURCE"},
	{"12", "SETWINDOWEXT"},
	{"120", "GETCONTINUINGTEXTEXTENT"},
	{"121", "DEATH"},
	{"122", "RESURRECTION"},
	{"123", "PLAYMETAFILE"},
	{"124", "GETMETAFILE"},
	{"125", "CREATEMETAFILE"},
	{"126", "CLOSEMETAFILE"},
	{"127", "DELETEMETAFILE"},
	{"128", "MULDIV"},
	{"129", "SAVEVISRGN"},
	{"13", "SETVIEWPORTORG"},
	{"130", "RESTOREVISRGN"},
	{"131", "INQUIREVISRGN"},
	{"132", "SETENVIRONMENT"},
	{"133", "GETENVIRONMENT"},
	{"134", "GETRGNBOX"},
	{"135", "SCANLR"},
	{"136", "REMOVEFONTRESOURCE"},
	{"137", "GSV"},
	{"138", "DPXLATE"},
	{"139", "SETWINVIEWEXT"},
	{"14", "SETVIEWPORTEXT"},
	{"140", "SCALEEXT"},
	{"141", "WORDSET"},
	{"142", "RECTSTUFF"},
	{"143", "OFFSETORG"},
	{"144", "LOCKDC"},
	{"145", "UNLOCKDC"},
	{"146", "LOCKUNLOCK"},
	{"147", "GDI_FARFRAME"},
	{"148", "SETBRUSHORG"},
	{"149", "GETBRUSHORG"},
	{"15", "OFFSETWINDOWORG"},
	{"150", "UNREALIZEOBJECT"},
	{"151", "COPYMETAFILE"},
	{"152", "GDIINITAPP"},
	{"153", "CREATEIC"},
	{"154", "GETNEARESTCOLOR"},
	{"155", "QUERYABORT"},
	{"156", "CREATEDISCARDABLEBITMAP"},
	{"157", "COMPATIBLEBITMAP"},
	{"158", "ENUMCALLBACK"},
	{"159", "GETMETAFILEBITS"},
	{"16", "SCALEWINDOWEXT"},
	{"160", "SETMETAFILEBITS"},
	{"161", "PTINREGION"},
	{"162", "GETBITMAPDIMENSION"},
	{"163", "SETBITMAPDIMENSION"},
	{"164", "PIXTOLINE"},
	{"169", "ISDCDIRTY"},
	{"17", "OFFSETVIEWPORTORG"},
	{"170", "SETDCSTATUS"},
	{"171", "LVBUNION"},
	{"172", "SETRECTRGN"},
	{"173", "GETCLIPRGN"},
	{"174", "BLOAT"},
	{"175", "ENUMMETAFILE"},
	{"176", "PLAYMETAFILERECORD"},
	{"177", "RCOS"},
	{"178", "RSIN"},
	{"179", "GETDCSTATE"},
	{"18", "SCALEVIEWPORTEXT"},
	{"180", "SETDCSTATE"},
	{"181", "RECTINREGION"},
	{"182", "REQUESTSEM"},
	{"183", "CLEARSEM"},
	{"184", "STUFFVISIBLE"},
	{"185", "STUFFINREGION"},
	{"186", "DELETEABOVELINEFONTS"},
	{"188", "GETTEXTEXTENTEX"},
	{"19", "LINETO"},
	{"190", "SETDCHOOK"},
	{"191", "GETDCHOOK"},
	{"192", "SETHOOKFLAGS"},
	{"193", "SETBOUNDSRECT"},
	{"194", "GETBOUNDSRECT"},
	{"195", "SELECTBITMAP"},
	{"196", "SETMETAFILEBITSBETTER"},
	{"2", "SETBKMODE"},
	{"20", "MOVETO"},
	{"201", "DMBITBLT"},
	{"202", "DMCOLORINFO"},
	{"206", "DMENUMDFONTS"},
	{"207", "DMENUMOBJ"},
	{"208", "DMOUTPUT"},
	{"209", "DMPIXEL"},
	{"21", "EXCLUDECLIPRECT"},
	{"210", "DMREALIZEOBJECT"},
	{"211", "DMSTRBLT"},
	{"212", "DMSCANLR"},
	{"213", "BRUTE"},
	{"214", "DMEXTTEXTOUT"},
	{"215", "DMGETCHARWIDTH"},
	{"216", "DMSTRETCHBLT"},
	{"217", "DMDIBBITS"},
	{"218", "DMSTRETCHDIBITS"},
	{"219", "DMSETDIBTODEV"},
	{"22", "INTERSECTCLIPRECT"},
	{"220", "DMTRANSPOSE"},
	{"23", "ARC"},
	{"230", "CREATEPQ"},
	{"231", "MINPQ"},
	{"232", "EXTRACTPQ"},
	{"233", "INSERTPQ"},
	{"234", "SIZEPQ"},
	{"235", "DELETEPQ"},
	{"24", "ELLIPSE"},
	{"240", "OPENJOB"},
	{"241", "WRITESPOOL"},
	{"242", "WRITEDIALOG"},
	{"243", "CLOSEJOB"},
	{"244", "DELETEJOB"},
	{"245", "GETSPOOLJOB"},
	{"246", "STARTSPOOLPAGE"},
	{"247", "ENDSPOOLPAGE"},
	{"248", "QUERYJOB"},
	{"25", "FLOODFILL"},
	{"250", "COPY"},
	{"253", "DELETESPOOLPAGE"},
	{"254", "SPOOLFILE"},
	{"26", "PIE"},
	{"266", "OPENPRINTERA"},
	{"267", "STARTDOCPRINTERA"},
	{"268", "STARTPAGEPRINTER"},
	{"269", "WRITEPRINTER"},
	{"27", "RECTANGLE"},
	{"270", "ENDPAGEPRINTER"},
	{"271", "ABORTPRINTER"},
	{"272", "ENDDOCPRINTER"},
	{"274", "CLOSEPRINTER"},
	{"28", "ROUNDRECT"},
	{"280", "GETREALDRIVERINFO"},
	{"281", "DRVSETPRINTERDATA"},
	{"282", "DRVGETPRINTERDATA"},
	{"29", "PATBLT"},
	{"299", "ENGINEGETCHARWIDTHEX"},
	{"3", "SETMAPMODE"},
	{"30", "SAVEDC"},
	{"300", "ENGINEENUMERATEFONT"},
	{"301", "ENGINEDELETEFONT"},
	{"302", "ENGINEREALIZEFONT"},
	{"303", "ENGINEGETCHARWIDTH"},
	{"304", "ENGINESETFONTCONTEXT"},
	{"305", "ENGINEGETGLYPHBMP"},
	{"306", "ENGINEMAKEFONTDIR"},
	{"307", "GETCHARABCWIDTHS"},
	{"308", "GETOUTLINETEXTMETRICS"},
	{"309", "GETGLYPHOUTLINE"},
	{"31", "SETPIXEL"},
	{"310", "CREATESCALABLEFONTRESOURCE"},
	{"311", "GETFONTDATA"},
	{"312", "CONVERTOUTLINEFONTFILE"},
	{"313", "GETRASTERIZERCAPS"},
	{"314", "ENGINEEXTTEXTOUT"},
	{"315", "ENGINEREALIZEFONTEXT"},
	{"316", "ENGINEGETCHARWIDTHSTR"},
	{"317", "ENGINEGETGLYPHBMPEXT"},
	{"32", "OFFSETCLIPRGN"},
	{"33", "TEXTOUT"},
	{"330", "ENUMFONTFAMILIES"},
	{"332", "GETKERNINGPAIRS"},
	{"34", "BITBLT"},
	{"345", "GETTEXTALIGN"},
	{"346", "SETTEXTALIGN"},
	{"347", "MFDRAWTEXT"},
	{"348", "CHORD"},
	{"349", "SETMAPPERFLAGS"},
	{"35", "STRETCHBLT"},
	{"350", "GETCHARWIDTH"},
	{"351", "EXTTEXTOUT"},
	{"352", "GETPHYSICALFONTHANDLE"},
	{"353", "GETASPECTRATIOFILTER"},
	{"354", "SHRINKGDIHEAP"},
	{"355", "FTRAPPING0"},
	{"36", "POLYGON"},
	{"360", "CREATEPALETTE"},
	{"361", "GDISELECTPALETTE"},
	{"362", "GDIREALIZEPALETTE"},
	{"363", "GETPALETTEENTRIES"},
	{"364", "SETPALETTEENTRIES"},
	{"365", "REALIZEDEFAULTPALETTE"},
	{"366", "UPDATECOLORS"},
	{"367", "ANIMATEPALETTE"},
	{"368", "RESIZEPALETTE"},
	{"37", "POLYLINE"},
	{"370", "GETNEARESTPALETTEINDEX"},
	{"372", "EXTFLOODFILL"},
	{"373", "SETSYSTEMPALETTEUSE"},
	{"374", "GETSYSTEMPALETTEUSE"},
	{"375", "GETSYSTEMPALETTEENTRIES"},
	{"376", "RESETDC"},
	{"377", "STARTDOC"},
	{"378", "ENDDOC"},
	{"379", "STARTPAGE"},
	{"38", "ESCAPE"},
	{"380", "ENDPAGE"},
	{"381", "SETABORTPROC"},
	{"382", "ABORTDOC"},
	{"39", "RESTOREDC"},
	{"4", "SETROP2"},
	{"40", "FILLRGN"},
	{"400", "FASTWINDOWFRAME"},
	{"401", "GDIMOVEBITMAP"},
	{"402", "GDIGETBITSGLOBAL"},
	{"403", "GDIINIT2"},
	{"404", "GETTTGLYPHINDEXMAP"},
	{"405", "FINALGDIINIT"},
	{"406", "CREATEREALBITMAPINDIRECT"},
	{"407", "CREATEUSERBITMAP"},
	{"408", "CREATEREALBITMAP"},
	{"409", "CREATEUSERDISCARDABLEBITMAP"},
	{"41", "FRAMERGN"},
	{"410", "ISVALIDMETAFILE"},
	{"411", "GETCURLOGFONT"},
	{"412", "ISDCCURRENTPALETTE"},
	{"42", "INVERTRGN"},
	{"43", "PAINTRGN"},
	{"439", "STRETCHDIBITS"},
	{"44", "SELECTCLIPRGN"},
	{"440", "SETDIBITS"},
	{"441", "GETDIBITS"},
	{"442", "CREATEDIBITMAP"},
	{"443", "SETDIBITSTODEVICE"},
	{"444", "CREATEROUNDRECTRGN"},
	{"445", "CREATEDIBPATTERNBRUSH"},
	{"449", "DEVICECOLORMATCH"},
	{"45", "SELECTOBJECT"},
	{"450", "POLYPOLYGON"},
	{"451", "CREATEPOLYPOLYGONRGN"},
	{"452", "GDISEEGDIDO"},
	{"46", "__GP"},
	{"461", "SETOBJECTOWNER"},
	{"462", "ISGDIOBJECT"},
	{"463", "MAKEOBJECTPRIVATE"},
	{"464", "FIXUPBOGUSPUBLISHERMETAFILE"},
	{"465", "RECTVISIBLE_EHH"},
	{"466", "RECTINREGION_EHH"},
	{"467", "UNICODETOANSI"},
	{"468", "GETBITMAPDIMENSIONEX"},
	{"469", "GETBRUSHORGEX"},
	{"47", "COMBINERGN"},
	{"470", "GETCURRENTPOSITIONEX"},
	{"471", "GETTEXTEXTENTPOINT"},
	{"472", "GETVIEWPORTEXTEX"},
	{"473", "GETVIEWPORTORGEX"},
	{"474", "GETWINDOWEXTEX"},
	{"475", "GETWINDOWORGEX"},
	{"476", "OFFSETVIEWPORTORGEX"},
	{"477", "OFFSETWINDOWORGEX"},
	{"478", "SETBITMAPDIMENSIONEX"},
	{"479", "SETVIEWPORTEXTEX"},
	{"48", "CREATEBITMAP"},
	{"480", "SETVIEWPORTORGEX"},
	{"481", "SETWINDOWEXTEX"},
	{"482", "SETWINDOWORGEX"},
	{"483", "MOVETOEX"},
	{"484", "SCALEVIEWPORTEXTEX"},
	{"485", "SCALEWINDOWEXTEX"},
	{"486", "GETASPECTRATIOFILTEREX"},
	{"489", "CREATEDIBSECTION"},
	{"49", "CREATEBITMAPINDIRECT"},
	{"490", "CLOSEENHMETAFILE"},
	{"491", "COPYENHMETAFILE"},
	{"492", "CREATEENHMETAFILE"},
	{"493", "DELETEENHMETAFILE"},
	{"495", "GDICOMMENT"},
	{"496", "GETENHMETAFILE"},
	{"497", "GETENHMETAFILEBITS"},
	{"498", "GETENHMETAFILEDESCRIPTION"},
	{"499", "GETENHMETAFILEHEADER"},
	{"5", "SETRELABS"},
	{"50", "CREATEBRUSHINDIRECT"},
	{"501", "GETENHMETAFILEPALETTEENTRIES"},
	{"502", "POLYBEZIER"},
	{"503", "POLYBEZIERTO"},
	{"504", "PLAYENHMETAFILERECORD"},
	{"505", "SETENHMETAFILEBITS"},
	{"506", "SETMETARGN"},
	{"508", "EXTSELECTCLIPRGN"},
	{"51", "CREATECOMPATIBLEBITMAP"},
	{"511", "ABORTPATH"},
	{"512", "BEGINPATH"},
	{"513", "CLOSEFIGURE"},
	{"514", "ENDPATH"},
	{"515", "FILLPATH"},
	{"516", "FLATTENPATH"},
	{"517", "GETPATH"},
	{"518", "PATHTOREGION"},
	{"519", "SELECTCLIPPATH"},
	{"52", "CREATECOMPATIBLEDC"},
	{"520", "STROKEANDFILLPATH"},
	{"521", "STROKEPATH"},
	{"522", "WIDENPATH"},
	{"523", "EXTCREATEPEN"},
	{"524", "GETARCDIRECTION"},
	{"525", "SETARCDIRECTION"},
	{"526", "GETMITERLIMIT"},
	{"527", "SETMITERLIMIT"},
	{"528", "GDIPARAMETERSINFO"},
	{"529", "CREATEHALFTONEPALETTE"},
	{"53", "CREATEDC"},
	{"54", "CREATEELLIPTICRGN"},
	{"55", "CREATEELLIPTICRGNINDIRECT"},
	{"56", "CREATEFONT"},
	{"57", "CREATEFONTINDIRECT"},
	{"58", "CREATEHATCHBRUSH"},
	{"59", "WEP"},
	{"6", "SETPOLYFILLMODE"},
	{"60", "CREATEPATTERNBRUSH"},
	{"602", "SETDIBCOLORTABLE"},
	{"603", "GETDIBCOLORTABLE"},
	{"604", "SETSOLIDBRUSH"},
	{"605", "SYSDELETEOBJECT"},
	{"606", "SETMAGICCOLORS"},
	{"607", "GETREGIONDATA"},
	{"608", "EXTCREATEREGION"},
	{"609", "GDIFREERESOURCES"},
	{"61", "CREATEPEN"},
	{"610", "GDISIGNALPROC32"},
	{"611", "GETRANDOMRGN"},
	{"612", "GETTEXTCHARSET"},
	{"613", "ENUMFONTFAMILIESEX"},
	{"614", "ADDLPKTOGDI"},
	{"615", "GETCHARACTERPLACEMENT"},
	{"616", "GETFONTLANGUAGEINFO"},
	{"62", "CREATEPENINDIRECT"},
	{"63", "CREATEPOLYGONRGN"},
	{"64", "CREATERECTRGN"},
	{"65", "CREATERECTRGNINDIRECT"},
	{"650", "BUILDINVERSETABLEDIB"},
	{"66", "CREATESOLIDBRUSH"},
	{"67", "DPTOLP"},
	{"68", "DELETEDC"},
	{"69", "DELETEOBJECT"},
	{"7", "SETSTRETCHBLTMODE"},
	{"70", "ENUMFONTS"},
	{"701", "GDITHKCONNECTIONDATALS"},
	{"702", "FT_GDIFTHKTHKCONNECTIONDATA"},
	{"703", "FDTHKCONNECTIONDATASL"},
	{"704", "ICMTHKCONNECTIONDATASL"},
	{"71", "ENUMOBJECTS"},
	{"72", "EQUALRGN"},
	{"73", "EXCLUDEVISRECT"},
	{"74", "GETBITMAPBITS"},
	{"75", "GETBKCOLOR"},
	{"76", "GETBKMODE"},
	{"77", "GETCLIPBOX"},
	{"78", "GETCURRENTPOSITION"},
	{"79", "GETDCORG"},
	{"8", "SETTEXTCHARACTEREXTRA"},
	{"80", "GETDEVICECAPS"},
	{"81", "GETMAPMODE"},
	{"82", "GETOBJECT"},
	{"820", "ICMCREATETRANSFORM"},
	{"821", "ICMDELETETRANSFORM"},
	{"822", "ICMTRANSLATERGB"},
	{"823", "ICMTRANSLATERGBS"},
	{"824", "ICMCHECKCOLORSINGAMUT"},
	{"83", "GETPIXEL"},
	{"84", "GETPOLYFILLMODE"},
	{"85", "GETROP2"},
	{"86", "GETRELABS"},
	{"87", "GETSTOCKOBJECT"},
	{"88", "GETSTRETCHBLTMODE"},
	{"89", "GETTEXTCHARACTEREXTRA"},
	{"9", "SETTEXTCOLOR"},
	{"90", "GETTEXTCOLOR"},
	{"91", "GETTEXTEXTENT"},
	{"92", "GETTEXTFACE"},
	{"93", "GETTEXTMETRICS"},
	{"94", "GETVIEWPORTEXT"},
	{"95", "GETVIEWPORTORG"},
	{"96", "GETWINDOWEXT"},
	{"97", "GETWINDOWORG"},
	{"98", "INTERSECTVISRECT"},
	{"99", "LPTODP"},
  {NULL, NULL}
};
typedef int (*GperfForeachCallback)(void *user, const char *k, const char *v);
int gperf_gdi_foreach(GperfForeachCallback cb, void *user) {
  int i = 0; while (kvs[i].name) {
  cb (user, kvs[i].name, kvs[i].value);
  i++;}
  return 0;
}
const char *gperf_gdi_get(const char *s) {
  int i = 0; while (kvs[i].name) {
  if (!strcmp (s, kvs[i].name)) return kvs[i].value;
  i++;}
  return NULL;
}
#define sdb_hash_c_gdi(x,y) gperf_gdi_hash(x)
const unsigned int gperf_gdi_hash(const char *s) {
  int sum = strlen (s);
  while (*s) { sum += *s; s++; }
  return sum;
}
struct {const char *name;void *get;void *hash;void *foreach;} gperf_gdi = {
  .name = "gdi",
  .get = &gperf_gdi_get,
  .hash = &gperf_gdi_hash,
  .foreach = &gperf_gdi_foreach
};

#if MAIN
int main () {
	const char *s = ((char*(*)(char*))gperf_gdi.get)("foo");
	printf ("%s\n", s);
}
#endif
