// 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 ole2.c ; ./a.out > ole2.h
	{"1", "OLEBUILDVERSION"},
	{"10", "OLECREATE"},
	{"100", "MAKEDEBUGSTREAM"},
	{"101", "?GETMARSHALSIZEMAX@CMMB@@VEAPEXAFUGUID@@PEXK1KPEK@Z"},
	{"102", "?RELEASEMARSHALDATA@CMMS@@VEAPEXPEUISTREAM@@@Z"},
	{"103", "?RELEASE@CMMS@@VEAKXZ"},
	{"104", "DBGLOGOPEN"},
	{"105", "DBGLOGCLOSE"},
	{"106", "DBGLOGOUTPUTDEBUGSTRING"},
	{"107", "DBGLOGWRITE"},
	{"108", "DBGLOGTIMESTAMP"},
	{"109", "DBGLOGWRITEBANNER"},
	{"11", "OLECREATELINK"},
	{"110", "DBGDUMPOBJECT"},
	{"111", "DBGISOBJECTVALID"},
	{"112", "DUMPALLOBJECTS"},
	{"113", "VALIDATEALLOBJECTS"},
	{"114", "DBGDUMPCLASSNAME"},
	{"115", "DBGDUMPEXTERNALOBJECT"},
	{"116", "?CLONE@CMEMSTM@@VEAPEXPEPEUISTREAM@@@Z"},
	{"117", "?MARSHALINTERFACE@CMMB@@VEAPEXPEUISTREAM@@AFUGUID@@PEXK2K@Z"},
	{"118", "?ADDREF@CMEMBYTES@@VEAKXZ"},
	{"119", "?SIZEASSOC@CMAPKEYTOVALUE@@BFCIXZ"},
	{"12", "OLELOAD"},
	{"120", "_IID_IENUMUNKNOWN"},
	{"121", "_IID_IENUMSTRING"},
	{"122", "_IID_IENUMMONIKER"},
	{"123", "_IID_IENUMFORMATETC"},
	{"124", "_IID_IENUMOLEVERB"},
	{"125", "_IID_IENUMSTATDATA"},
	{"126", "_IID_IENUMGENERIC"},
	{"127", "_IID_IENUMHOLDER"},
	{"128", "_IID_IENUMCALLBACK"},
	{"129", "_IID_IPERSISTSTREAM"},
	{"13", "OLESAVE"},
	{"130", "_IID_IPERSISTSTORAGE"},
	{"131", "_IID_IPERSISTFILE"},
	{"132", "_IID_IPERSIST"},
	{"133", "_IID_IVIEWOBJECT"},
	{"134", "_IID_IDATAOBJECT"},
	{"135", "_IID_IADVISESINK"},
	{"136", "_IID_IDATAADVISEHOLDER"},
	{"137", "_IID_IOLEADVISEHOLDER"},
	{"138", "_IID_IOLEOBJECT"},
	{"139", "_IID_IOLEINPLACEOBJECT"},
	{"14", "OLERUN"},
	{"140", "_IID_IOLEWINDOW"},
	{"141", "_IID_IOLEINPLACEUIWINDOW"},
	{"142", "_IID_IOLEINPLACEFRAME"},
	{"143", "_IID_IOLEINPLACEACTIVEOBJECT"},
	{"144", "_IID_IOLECLIENTSITE"},
	{"145", "_IID_IOLEINPLACESITE"},
	{"146", "_IID_IPARSEDISPLAYNAME"},
	{"147", "_IID_IOLECONTAINER"},
	{"148", "_IID_IOLEITEMCONTAINER"},
	{"149", "_IID_IOLELINK"},
	{"15", "WEP"},
	{"150", "_IID_IOLECACHE"},
	{"151", "_IID_IOLEMANAGER"},
	{"152", "_IID_IOLEPRESOBJ"},
	{"153", "_IID_IDROPSOURCE"},
	{"154", "_IID_IDROPTARGET"},
	{"155", "_IID_IDEBUG"},
	{"156", "_IID_IDEBUGSTREAM"},
	{"157", "_IID_IADVISESINK2"},
	{"158", "_IID_IVIEWOBJECT2"},
	{"159", "_IID_IOLECACHE2"},
	{"16", "OLEISRUNNING"},
	{"160", "_IID_IOLECACHECONTROL"},
	{"161", "_IID_IRUNNABLEOBJECT"},
	{"162", "OLESTDICONLABELTEXTOUT"},
	{"163", "CMEMBYTESUNMARSHAL"},
	{"164", "?LOCKREGION@CMEMBYTES@@VEAPEXU_ULARGE_INTEGER@@0K@Z"},
	{"165", "?CREATE@CMEMBYTES@@TAPEV1@I@Z"},
	{"166", "?READAT@CMEMBYTES@@VEAPEXU_ULARGE_INTEGER@@PIXKPEK@Z"},
	{"167", "?GETAT@CARRAYFVALUE@@RFCPEXH@Z"},
	{"168", "?SETSIZE@CMEMSTM@@VEAPEXU_ULARGE_INTEGER@@@Z"},
	{"169", "?CREATE@CMEMSTM@@TAPEV1@I@Z"},
	{"17", "OLELOCKRUNNING"},
	{"170", "?GETUPPERBOUND@CARRAYFVALUE@@RFCHXZ"},
	{"171", "OLESTDGETUSERTYPEOFCLASS"},
	{"172", "?COMMIT@CMEMSTM@@VEAPEXK@Z"},
	{"173", "XFORMHEIGHTINHIMETRICTOPIXELS"},
	{"174", "XFORMHEIGHTINPIXELSTOHIMETRIC"},
	{"175", "?GETSTARTPOSITION@CMAPKEYTOVALUE@@RFCPEXXZ"},
	{"176", "?STAT@CMEMBYTES@@VEAPEXPEUTAGSTATSTG@@K@Z"},
	{"177", "?READ@CMEMSTM@@VEAPEXPIXKPEK@Z"},
	{"178", "?MARSHALINTERFACE@CMMS@@VEAPEXPEUISTREAM@@AFUGUID@@PEXK2K@Z"},
	{"179", "?GETSIZEVALUE@CARRAYFVALUE@@RFCHXZ"},
	{"18", "READCLASSSTG"},
	{"180", "CLONEMEMSTM"},
	{"181", "OLEGETCLASSID"},
	{"182", "?GETCOUNT@CMAPKEYTOVALUE@@RFCHXZ"},
	{"183", "?UNLOCKREGION@CMEMBYTES@@VEAPEXU_ULARGE_INTEGER@@0K@Z"},
	{"184", "?DISCONNECTOBJECT@CMMB@@VEAPEXK@Z"},
	{"185", "?CREATE@CMMB@@TAPEV1@PEVCMEMBYTES@@@Z"},
	{"186", "XFORMWIDTHINHIMETRICTOPIXELS"},
	{"187", "?QUERYINTERFACE@CMMB@@VEAPEXAFUGUID@@PEPEX@Z"},
	{"188", "CMEMSTMUNMARSHAL"},
	{"189", "?RELEASE@CMEMBYTES@@VEAKXZ"},
	{"19", "WRITECLASSSTG"},
	{"190", "?ISEMPTY@CMAPKEYTOVALUE@@RFCHXZ"},
	{"191", "?QUERYINTERFACE@CMMS@@VEAPEXAFUGUID@@PEPEX@Z"},
	{"192", "?GETUNMARSHALCLASS@CMMS@@VEAPEXAFUGUID@@PEXK1KPEU2@@Z"},
	{"193", "?GETMARSHALSIZEMAX@CMMS@@VEAPEXAFUGUID@@PEXK1KPEK@Z"},
	{"194", "?WRITE@CMEMSTM@@VEAPEXPJXKPEK@Z"},
	{"195", "?WRITEAT@CMEMBYTES@@VEAPEXU_ULARGE_INTEGER@@PJXKPEK@Z"},
	{"196", "RELEASEMEMSTM"},
	{"197", "?FLUSH@CMEMBYTES@@VEAPEXXZ"},
	{"198", "?UNMARSHALINTERFACE@CMMB@@VEAPEXPEUISTREAM@@AFUGUID@@PEPEX@Z"},
	{"199", "?STAT@CMEMSTM@@VEAPEXPEUTAGSTATSTG@@K@Z"},
	{"2", "OLEINITIALIZE"},
	{"20", "READCLASSSTM"},
	{"200", "?ADDREF@CMEMSTM@@VEAKXZ"},
	{"201", "___EXPORTEDSTUB"},
	{"202", "?REVERT@CMEMSTM@@VEAPEXXZ"},
	{"203", "OLESTDGETAUXUSERTYPE"},
	{"204", "?CREATE@CMMS@@TAPEV1@PEVCMEMSTM@@@Z"},
	{"205", "?LOCKREGION@CMEMSTM@@VEAPEXU_ULARGE_INTEGER@@0K@Z"},
	{"206", "?ADDREF@CMMB@@VEAKXZ"},
	{"207", "?DISCONNECTOBJECT@CMMS@@VEAPEXK@Z"},
	{"208", "?UNMARSHALINTERFACE@CMMS@@VEAPEXPEUISTREAM@@AFUGUID@@PEPEX@Z"},
	{"209", "?UNLOCKREGION@CMEMSTM@@VEAPEXU_ULARGE_INTEGER@@0K@Z"},
	{"21", "WRITECLASSSTM"},
	{"210", "?GETSIZE@CARRAYFVALUE@@RFCHXZ"},
	{"211", "?ADDREF@CMMS@@VEAKXZ"},
	{"212", "?SETSIZE@CMEMBYTES@@VEAPEXU_ULARGE_INTEGER@@@Z"},
	{"213", "?COPYTO@CMEMSTM@@VEAPEXPEUISTREAM@@U_ULARGE_INTEGER@@PEU3@2@Z"},
	{"22", "BINDMONIKER"},
	{"23", "MKPARSEDISPLAYNAME"},
	{"24", "OLESAVETOSTREAM"},
	{"25", "OLELOADFROMSTREAM"},
	{"26", "CREATEBINDCTX"},
	{"27", "CREATEITEMMONIKER"},
	{"28", "CREATEFILEMONIKER"},
	{"29", "CREATEGENERICCOMPOSITE"},
	{"3", "OLEUNINITIALIZE"},
	{"30", "GETRUNNINGOBJECTTABLE"},
	{"31", "OLEGETMALLOC"},
	{"32", "RELEASESTGMEDIUM"},
	{"33", "READSTRINGSTREAM"},
	{"34", "WRITESTRINGSTREAM"},
	{"35", "REGISTERDRAGDROP"},
	{"36", "REVOKEDRAGDROP"},
	{"37", "DODRAGDROP"},
	{"38", "CREATEOLEADVISEHOLDER"},
	{"39", "CREATEDATAADVISEHOLDER"},
	{"4", "DLLGETCLASSOBJECT"},
	{"40", "OLECREATEMENUDESCRIPTOR"},
	{"41", "OLESETMENUDESCRIPTOR"},
	{"42", "OLEDESTROYMENUDESCRIPTOR"},
	{"43", "OPENORCREATESTREAM"},
	{"44", "CREATEANTIMONIKER"},
	{"45", "CREATEPOINTERMONIKER"},
	{"46", "MONIKERRELATIVEPATHTO"},
	{"47", "MONIKERCOMMONPREFIXWITH"},
	{"48", "ISACCELERATOR"},
	{"49", "OLESETCLIPBOARD"},
	{"5", "?SEEK@CMEMSTM@@VEAPEXU_LARGE_INTEGER@@KPEU_ULARGE_INTEGER@@@Z"},
	{"50", "OLEGETCLIPBOARD"},
	{"51", "OLEDUPLICATEDATA"},
	{"52", "OLEGETICONOFFILE"},
	{"53", "OLEGETICONOFCLASS"},
	{"54", "CREATEILOCKBYTESONHGLOBAL"},
	{"55", "GETHGLOBALFROMILOCKBYTES"},
	{"56", "OLEMETAFILEPICTFROMICONANDLABEL"},
	{"57", "GETCLASSFILE"},
	{"58", "OLEDRAW"},
	{"59", "OLECREATEDEFAULTHANDLER"},
	{"6", "OLEQUERYLINKFROMDATA"},
	{"60", "OLECREATEEMBEDDINGHELPER"},
	{"61", "OLECONVERTISTORAGETOOLESTREAMEX"},
	{"62", "OLECONVERTOLESTREAMTOISTORAGEEX"},
	{"63", "SETDOCUMENTBITSTG"},
	{"64", "GETDOCUMENTBITSTG"},
	{"65", "WRITEOLESTG"},
	{"66", "READOLESTG"},
	{"67", "OLECREATEFROMFILE"},
	{"68", "OLECREATELINKTOFILE"},
	{"69", "CREATEDATACACHE"},
	{"7", "OLEQUERYCREATEFROMDATA"},
	{"70", "OLECONVERTISTORAGETOOLESTREAM"},
	{"71", "OLECONVERTOLESTREAMTOISTORAGE"},
	{"72", "?RELEASE@CMEMSTM@@VEAKXZ"},
	{"73", "CREATEMEMSTM"},
	{"74", "READFMTUSERTYPESTG"},
	{"75", "WRITEFMTUSERTYPESTG"},
	{"76", "OLEFLUSHCLIPBOARD"},
	{"77", "OLEISCURRENTCLIPBOARD"},
	{"78", "OLETRANSLATEACCELERATOR"},
	{"79", "OLEDOAUTOCONVERT"},
	{"8", "OLECREATEFROMDATA"},
	{"80", "OLEGETAUTOCONVERT"},
	{"81", "OLESETAUTOCONVERT"},
	{"82", "GETCONVERTSTG"},
	{"83", "SETCONVERTSTG"},
	{"84", "CREATESTREAMONHGLOBAL"},
	{"85", "GETHGLOBALFROMSTREAM"},
	{"86", "OLESETCONTAINEDOBJECT"},
	{"87", "OLENOTEOBJECTVISIBLE"},
	{"88", "OLECREATESTATICFROMDATA"},
	{"89", "OLEREGGETUSERTYPE"},
	{"9", "OLECREATELINKFROMDATA"},
	{"90", "OLEREGGETMISCSTATUS"},
	{"91", "OLEREGENUMFORMATETC"},
	{"92", "OLEREGENUMVERBS"},
	{"93", "?REMOVEALL@CARRAYFVALUE@@RECXXZ"},
	{"94", "?QUERYINTERFACE@CMEMBYTES@@VEAPEXAFUGUID@@PEPEX@Z"},
	{"95", "XFORMWIDTHINPIXELSTOHIMETRIC"},
	{"96", "?RELEASE@CMMB@@VEAKXZ"},
	{"97", "?RELEASEMARSHALDATA@CMMB@@VEAPEXPEUISTREAM@@@Z"},
	{"98", "?QUERYINTERFACE@CMEMSTM@@VEAPEXAFUGUID@@PEPEX@Z"},
	{"99", "?GETUNMARSHALCLASS@CMMB@@VEAPEXAFUGUID@@PEXK1KPEU2@@Z"},
  {NULL, NULL}
};
typedef int (*GperfForeachCallback)(void *user, const char *k, const char *v);
int gperf_ole2_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_ole2_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_ole2(x,y) gperf_ole2_hash(x)
const unsigned int gperf_ole2_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_ole2 = {
  .name = "ole2",
  .get = &gperf_ole2_get,
  .hash = &gperf_ole2_hash,
  .foreach = &gperf_ole2_foreach
};

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