// 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 compobj.c ; ./a.out > compobj.h
	{"1", "COBUILDVERSION"},
	{"10", "COLOADLIBRARY"},
	{"100", "??0CARRAYFVALUE@@REC@KI@Z"},
	{"101", "??1CARRAYFVALUE@@REC@XZ"},
	{"102", "?ASSERTVALID@CARRAYFVALUE@@RFCXXZ"},
	{"103", "?FREEEXTRA@CARRAYFVALUE@@RECXXZ"},
	{"104", "?_GETAT@CARRAYFVALUE@@RFCPEXH@Z"},
	{"105", "?GETSIZE@CARRAYFVALUE@@RFCHXZ"},
	{"106", "?REMOVEALL@CARRAYFVALUE@@RECXXZ"},
	{"107", "SSCALLOBJECTINWOW"},
	{"108", "?INDEXOF@CARRAYFVALUE@@RECHPEXII@Z"},
	{"109", "?INSERTAT@CARRAYFVALUE@@RECHHPEXH@Z"},
	{"11", "COFREELIBRARY"},
	{"110", "COSETSTATE"},
	{"111", "?REMOVEAT@CARRAYFVALUE@@RECXHH@Z"},
	{"112", "?SETAT@CARRAYFVALUE@@RECXHPEX@Z"},
	{"113", "?SETATGROW@CARRAYFVALUE@@RECHHPEX@Z"},
	{"114", "?SETSIZE@CARRAYFVALUE@@RECHHH@Z"},
	{"115", "COGETSTATE"},
	{"116", "DLLENTRYPOINT"},
	{"117", "?RELEASE@CSTDMALLOC@@VEAKXZ"},
	{"118", "?ALLOC@CSTDMALLOC@@VEAPEXK@Z"},
	{"119", "CALL32UNINITIALIZE"},
	{"12", "COFREEALLLIBRARIES"},
	{"120", "?GETASSOCAT@CMAPKEYTOVALUE@@BFCPEUCASSOC@1@PEXIAEI@Z"},
	{"121", "?SETASSOCKEY@CMAPKEYTOVALUE@@BFCHPEUCASSOC@1@PEXI@Z"},
	{"122", "??1CMAPKEYTOVALUE@@REC@XZ"},
	{"123", "?GETASSOCKEYPTR@CMAPKEYTOVALUE@@BFCXPEUCASSOC@1@PEPEXPEI@Z"},
	{"124", "?NEWASSOC@CMAPKEYTOVALUE@@BECPEUCASSOC@1@IPEXI0@Z"},
	{"125", "?SIZEASSOC@CMAPKEYTOVALUE@@BFCIXZ"},
	{"126", "?FREEASSOC@CMAPKEYTOVALUE@@BECXPEUCASSOC@1@@Z"},
	{"127", "?GETSTARTPOSITION@CMAPKEYTOVALUE@@RFCPEXXZ"},
	{"128", "?GETNEXTASSOC@CMAPKEYTOVALUE@@RFCXPEPEXPEXPEI1@Z"},
	{"129", "?COMPAREASSOCKEY@CMAPKEYTOVALUE@@BFCHPEUCASSOC@1@PEXI@Z"},
	{"13", "COCREATEINSTANCE"},
	{"130", "?REMOVEHKEY@CMAPKEYTOVALUE@@RECHK@Z"},
	{"131", "?GETHKEY@CMAPKEYTOVALUE@@RFCKPEXI@Z"},
	{"132", "?GETCOUNT@CMAPKEYTOVALUE@@RFCHXZ"},
	{"133", "?LOOKUP@CMAPKEYTOVALUE@@RFCHPEXI0@Z"},
	{"134", "?GETASSOCVALUE@CMAPKEYTOVALUE@@BFCXPEUCASSOC@1@PEX@Z"},
	{"135", "?REMOVEKEY@CMAPKEYTOVALUE@@RECHPEXI@Z"},
	{"136", "?REMOVEALL@CMAPKEYTOVALUE@@RECXXZ"},
	{"137", "REMOVEETASK"},
	{"138", "?FREEASSOCKEY@CMAPKEYTOVALUE@@BFCXPEUCASSOC@1@@Z"},
	{"139", "?SETAT@CMAPKEYTOVALUE@@RECHPEXI0@Z"},
	{"14", "STRINGFROMIID"},
	{"140", "?LOOKUPHKEY@CMAPKEYTOVALUE@@RFCHKPEX@Z"},
	{"141", "?ASSERTVALID@CMAPKEYTOVALUE@@RFCXXZ"},
	{"142", "?SETASSOCVALUE@CMAPKEYTOVALUE@@BFCXPEUCASSOC@1@PEX@Z"},
	{"143", "?SETATHKEY@CMAPKEYTOVALUE@@RECHKPEX@Z"},
	{"144", "??0CMAPKEYTOVALUE@@REC@KIIHP7CIPEXI@ZI@Z"},
	{"145", "?INITHASHTABLE@CMAPKEYTOVALUE@@BECHXZ"},
	{"146", "?GETASSOCVALUEPTR@CMAPKEYTOVALUE@@BFCXPEUCASSOC@1@PEPEX@Z"},
	{"147", "?LOOKUPADD@CMAPKEYTOVALUE@@RFCHPEXI0@Z"},
	{"148", "MKVDEFAULTHASHKEY"},
	{"149", "?PROXY1632METHOD3@@ZAKPEVCPROXY1632@@@Z"},
	{"15", "CODISCONNECTOBJECT"},
	{"150", "COMEMCTXOF"},
	{"151", "COMEMALLOC"},
	{"152", "COMEMFREE"},
	{"153", "?PROXY1632METHOD4@@ZAKPEVCPROXY1632@@@Z"},
	{"154", "?PROXY1632METHOD5@@ZAKPEVCPROXY1632@@@Z"},
	{"155", "?PROXY1632METHOD6@@ZAKPEVCPROXY1632@@@Z"},
	{"156", "?PROXY1632METHOD7@@ZAKPEVCPROXY1632@@@Z"},
	{"157", "?DIDALLOC@CSTDMALLOC@@VEAHPEX@Z"},
	{"158", "?PROXY1632METHOD8@@ZAKPEVCPROXY1632@@@Z"},
	{"159", "?PROXY1632METHOD9@@ZAKPEVCPROXY1632@@@Z"},
	{"16", "CORELEASEMARSHALDATA"},
	{"160", "CORUNMODALLOOP"},
	{"161", "COHANDLEINCOMINGCALL"},
	{"162", "COSETACKSTATE"},
	{"163", "?PROXY1632RELEASE@@ZAKPEVCPROXY1632@@@Z"},
	{"164", "?GETAT@CARRAYFVALUE@@RFCPEXH@Z"},
	{"165", "?GETUPPERBOUND@CARRAYFVALUE@@RFCHXZ"},
	{"166", "?SM16RHADDREF@@ZAKPEVCSM16RELEASEHANDLER@@@Z"},
	{"167", "?GETSIZEVALUE@CARRAYFVALUE@@RFCHXZ"},
	{"168", "?PROXY1632ADDREF@@ZAKPEVCPROXY1632@@@Z"},
	{"169", "REMLOOKUPSHUNK"},
	{"17", "COFREEUNUSEDLIBRARIES"},
	{"170", "?ISEMPTY@CMAPKEYTOVALUE@@RFCHXZ"},
	{"171", "?FREE@CSTDMALLOC@@VEAXPEX@Z"},
	{"172", "CALLTHKMGRINITIALIZE"},
	{"173", "?REALLOC@CSTDMALLOC@@VEAPEXPEXK@Z"},
	{"174", "?SM16RHQI@@ZAPEXPEVCSM16RELEASEHANDLER@@AFUGUID@@PEPEX@Z"},
	{"175", "?PROXY1632METHOD10@@ZAKPEVCPROXY1632@@@Z"},
	{"176", "___EXPORTEDSTUB"},
	{"177", "?PROXY1632METHOD20@@ZAKPEVCPROXY1632@@@Z"},
	{"178", "?PROXY1632METHOD11@@ZAKPEVCPROXY1632@@@Z"},
	{"179", "?PROXY1632METHOD30@@ZAKPEVCPROXY1632@@@Z"},
	{"18", "ISEQUALGUID"},
	{"180", "?PROXY1632METHOD21@@ZAKPEVCPROXY1632@@@Z"},
	{"181", "?PROXY1632METHOD12@@ZAKPEVCPROXY1632@@@Z"},
	{"182", "?PROXY1632METHOD31@@ZAKPEVCPROXY1632@@@Z"},
	{"183", "?PROXY1632METHOD22@@ZAKPEVCPROXY1632@@@Z"},
	{"184", "?PROXY1632METHOD13@@ZAKPEVCPROXY1632@@@Z"},
	{"185", "?GETSIZE@CSTDMALLOC@@VEAKPEX@Z"},
	{"186", "?PROXY1632METHOD23@@ZAKPEVCPROXY1632@@@Z"},
	{"187", "?PROXY1632METHOD14@@ZAKPEVCPROXY1632@@@Z"},
	{"188", "?PROXY1632METHOD24@@ZAKPEVCPROXY1632@@@Z"},
	{"189", "?PROXY1632METHOD15@@ZAKPEVCPROXY1632@@@Z"},
	{"19", "STRINGFROMCLSID"},
	{"190", "?PROXY1632METHOD25@@ZAKPEVCPROXY1632@@@Z"},
	{"191", "?PROXY1632METHOD16@@ZAKPEVCPROXY1632@@@Z"},
	{"192", "?PROXY1632METHOD26@@ZAKPEVCPROXY1632@@@Z"},
	{"193", "?PROXY1632METHOD17@@ZAKPEVCPROXY1632@@@Z"},
	{"194", "?PROXY1632METHOD27@@ZAKPEVCPROXY1632@@@Z"},
	{"195", "?PROXY1632METHOD18@@ZAKPEVCPROXY1632@@@Z"},
	{"196", "?PROXY1632METHOD28@@ZAKPEVCPROXY1632@@@Z"},
	{"197", "?ADDREF@CSTDMALLOC@@VEAKXZ"},
	{"198", "?PROXY1632METHOD19@@ZAKPEVCPROXY1632@@@Z"},
	{"199", "?PROXY1632METHOD29@@ZAKPEVCPROXY1632@@@Z"},
	{"2", "COINITIALIZE"},
	{"20", "CLSIDFROMSTRING"},
	{"200", "CALL32INITIALIZE"},
	{"201", "CALLOBJECTINWOW"},
	{"203", "CALLOBJECTINWOWCHECKINIT"},
	{"204", "CALLOBJECTINWOWCHECKTHKMGR"},
	{"205", "CONVERTHR1632"},
	{"206", "CONVERTHR3216"},
	{"207", "ADDAPPCOMPATFLAG"},
	{"21", "ISVALIDPTRIN"},
	{"22", "ISVALIDPTROUT"},
	{"23", "ISVALIDINTERFACE"},
	{"24", "ISVALIDIID"},
	{"25", "RESULTFROMSCODE"},
	{"26", "GETSCODE"},
	{"27", "COREGISTERMESSAGEFILTER"},
	{"28", "COISHANDLERCONNECTED"},
	{"29", "?QUERYINTERFACE@CSTDMALLOC@@VEAPEXAFUGUID@@PEPEX@Z"},
	{"3", "COUNINITIALIZE"},
	{"30", "COFILETIMETODOSDATETIME"},
	{"31", "CODOSDATETIMETOFILETIME"},
	{"32", "COMARSHALHRESULT"},
	{"33", "COUNMARSHALHRESULT"},
	{"34", "COGETCURRENTPROCESS"},
	{"35", "?HEAPMINIMIZE@CSTDMALLOC@@VEAXXZ"},
	{"36", "COISOLE1CLASS"},
	{"37", "_GUID_NULL"},
	{"38", "_IID_IUNKNOWN"},
	{"39", "_IID_ICLASSFACTORY"},
	{"4", "COGETMALLOC"},
	{"40", "_IID_IMALLOC"},
	{"41", "_IID_IMARSHAL"},
	{"42", "_IID_IRPCCHANNEL"},
	{"43", "_IID_IRPCSTUB"},
	{"44", "_IID_ISTUBMANAGER"},
	{"45", "_IID_IRPCPROXY"},
	{"46", "_IID_IPROXYMANAGER"},
	{"47", "_IID_IPSFACTORY"},
	{"48", "_IID_ILOCKBYTES"},
	{"49", "_IID_ISTORAGE"},
	{"5", "COREGISTERCLASSOBJECT"},
	{"50", "_IID_ISTREAM"},
	{"51", "_IID_IENUMSTATSTG"},
	{"52", "_IID_IBINDCTX"},
	{"53", "_IID_IMONIKER"},
	{"54", "_IID_IRUNNINGOBJECTTABLE"},
	{"55", "_IID_IINTERNALMONIKER"},
	{"56", "_IID_IROOTSTORAGE"},
	{"57", "_IID_IDFRESERVED1"},
	{"58", "_IID_IDFRESERVED2"},
	{"59", "_IID_IDFRESERVED3"},
	{"6", "COREVOKECLASSOBJECT"},
	{"60", "_IID_IMESSAGEFILTER"},
	{"61", "CLSIDFROMPROGID"},
	{"62", "PROGIDFROMCLSID"},
	{"63", "COLOCKOBJECTEXTERNAL"},
	{"64", "_CLSID_STDMARSHAL"},
	{"65", "COGETTREATASCLASS"},
	{"66", "COTREATASCLASS"},
	{"67", "COGETSTANDARDMARSHAL"},
	{"68", "PROPAGATERESULT"},
	{"69", "IIDFROMSTRING"},
	{"7", "COGETCLASSOBJECT"},
	{"70", "_IID_ISTDMARSHALINFO"},
	{"71", "COCREATESTANDARDMALLOC"},
	{"72", "_IID_IEXTERNALCONNECTION"},
	{"73", "COCREATEGUID"},
	{"74", "WEP"},
	{"75", "FNASSERT"},
	{"76", "STRINGFROMGUID2"},
	{"77", "COGETCLASSEXT"},
	{"78", "OLE1CLASSFROMCLSID2"},
	{"79", "CLSIDFROMOLE1CLASS"},
	{"8", "COMARSHALINTERFACE"},
	{"80", "COOPENCLASSKEY"},
	{"81", "GUIDFROMSTRING"},
	{"82", "COFILETIMENOW"},
	{"83", "REMALLOCOID"},
	{"84", "REMFREEOID"},
	{"85", "REMCREATEREMOTEHANDLER"},
	{"86", "REMCONNECTTOOBJECT"},
	{"87", "REMGETINFOFORCID"},
	{"88", "LRPCCALL"},
	{"89", "LRPCDISPATCH"},
	{"9", "COUNMARSHALINTERFACE"},
	{"90", "LRPCREGISTERMONITOR"},
	{"91", "LRPCREVOKEMONITOR"},
	{"92", "LRPCGETTHREADWINDOW"},
	{"93", "TIMERCALLBACKPROC"},
	{"94", "LOOKUPETASK"},
	{"95", "SETETASK"},
	{"96", "LRPCFREEMONITORDATA"},
	{"97", "?SM16RHRELEASE@@ZAKPEVCSM16RELEASEHANDLER@@@Z"},
	{"98", "?PROXY1632QUERYINTERFACE@@ZAKPEVCPROXY1632@@AFUGUID@@PEPEX@Z"},
	{"99", "CALLTHKMGRUNINITIALIZE"},
  {NULL, NULL}
};
typedef int (*GperfForeachCallback)(void *user, const char *k, const char *v);
int gperf_compobj_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_compobj_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_compobj(x,y) gperf_compobj_hash(x)
const unsigned int gperf_compobj_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_compobj = {
  .name = "compobj",
  .get = &gperf_compobj_get,
  .hash = &gperf_compobj_hash,
  .foreach = &gperf_compobj_foreach
};

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