github.com/tomatome/win@v0.3.1/types.go (about)

     1  // This file was automatically generated by https://github.com/kbinani/win/blob/generator/internal/cmd/gen/gen.go
     2  
     3  package win
     4  
     5  import (
     6  	"reflect"
     7  	"unsafe"
     8  )
     9  
    10  var (
    11  	types map[string]reflect.Type
    12  )
    13  
    14  func init() {
    15  	types = make(map[string]reflect.Type)
    16  	types["ABC"] = reflect.TypeOf((*ABC)(nil)).Elem()
    17  	types["ABCFLOAT"] = reflect.TypeOf((*ABCFLOAT)(nil)).Elem()
    18  	types["ABORTPROC"] = reflect.TypeOf((*ABORTPROC)(nil)).Elem()
    19  	types["ACCEL"] = reflect.TypeOf((*ACCEL)(nil)).Elem()
    20  	types["ACCESS_MASK"] = reflect.TypeOf((*ACCESS_MASK)(nil)).Elem()
    21  	types["ACCESS_MODE"] = reflect.TypeOf((*ACCESS_MODE)(nil)).Elem()
    22  	types["ACL"] = reflect.TypeOf((*ACL)(nil)).Elem()
    23  	types["ADDRESS_FAMILY"] = reflect.TypeOf((*ADDRESS_FAMILY)(nil)).Elem()
    24  	types["ADDRINFO"] = reflect.TypeOf((*ADDRINFO)(nil)).Elem()
    25  	types["ADDRINFOEX"] = reflect.TypeOf((*ADDRINFOEX)(nil)).Elem()
    26  	types["AFPROTOCOLS"] = reflect.TypeOf((*AFPROTOCOLS)(nil)).Elem()
    27  	types["ALG_ID"] = reflect.TypeOf((*ALG_ID)(nil)).Elem()
    28  	types["ALTTABINFO"] = reflect.TypeOf((*ALTTABINFO)(nil)).Elem()
    29  	types["APPBARDATA"] = reflect.TypeOf((*APPBARDATA)(nil)).Elem()
    30  	types["APTTYPE"] = reflect.TypeOf((*APTTYPE)(nil)).Elem()
    31  	types["APTTYPEQUALIFIER"] = reflect.TypeOf((*APTTYPEQUALIFIER)(nil)).Elem()
    32  	types["ARRAY_INFO"] = reflect.TypeOf((*ARRAY_INFO)(nil)).Elem()
    33  	types["ASSOCF"] = reflect.TypeOf((*ASSOCF)(nil)).Elem()
    34  	types["ASSOCKEY"] = reflect.TypeOf((*ASSOCKEY)(nil)).Elem()
    35  	types["ASSOCSTR"] = reflect.TypeOf((*ASSOCSTR)(nil)).Elem()
    36  	types["ASSOC_FILTER"] = reflect.TypeOf((*ASSOC_FILTER)(nil)).Elem()
    37  	types["ATOM"] = reflect.TypeOf((*ATOM)(nil)).Elem()
    38  	types["AUDIT_POLICY_INFORMATION"] = reflect.TypeOf((*AUDIT_POLICY_INFORMATION)(nil)).Elem()
    39  	types["AUTO_SCROLL_DATA"] = reflect.TypeOf((*AUTO_SCROLL_DATA)(nil)).Elem()
    40  	types["AUXCAPS"] = reflect.TypeOf((*AUXCAPS)(nil)).Elem()
    41  	types["BFFCALLBACK"] = reflect.TypeOf((*BFFCALLBACK)(nil)).Elem()
    42  	types["BIND_OPTS"] = reflect.TypeOf((*BIND_OPTS)(nil)).Elem()
    43  	types["BITMAP"] = reflect.TypeOf((*BITMAP)(nil)).Elem()
    44  	types["BITMAPINFO"] = reflect.TypeOf((*BITMAPINFO)(nil)).Elem()
    45  	types["BITMAPINFOHEADER"] = reflect.TypeOf((*BITMAPINFOHEADER)(nil)).Elem()
    46  	types["BLENDFUNCTION"] = reflect.TypeOf((*BLENDFUNCTION)(nil)).Elem()
    47  	types["BLENDOBJ"] = reflect.TypeOf((*BLENDOBJ)(nil)).Elem()
    48  	types["BLOB"] = reflect.TypeOf((*BLOB)(nil)).Elem()
    49  	types["BOOL"] = reflect.TypeOf((*BOOL)(nil)).Elem()
    50  	types["BOOLEAN"] = reflect.TypeOf((*BOOLEAN)(nil)).Elem()
    51  	types["BP_ANIMATIONPARAMS"] = reflect.TypeOf((*BP_ANIMATIONPARAMS)(nil)).Elem()
    52  	types["BP_BUFFERFORMAT"] = reflect.TypeOf((*BP_BUFFERFORMAT)(nil)).Elem()
    53  	types["BP_PAINTPARAMS"] = reflect.TypeOf((*BP_PAINTPARAMS)(nil)).Elem()
    54  	types["BROWSEINFO"] = reflect.TypeOf((*BROWSEINFO)(nil)).Elem()
    55  	types["BRUSHOBJ"] = reflect.TypeOf((*BRUSHOBJ)(nil)).Elem()
    56  	types["BSMINFO"] = reflect.TypeOf((*BSMINFO)(nil)).Elem()
    57  	types["BSTR"] = reflect.TypeOf((*BSTR)(nil)).Elem()
    58  	types["BSTRBLOB"] = reflect.TypeOf((*BSTRBLOB)(nil)).Elem()
    59  	types["BYTE"] = reflect.TypeOf((*BYTE)(nil)).Elem()
    60  	types["CABINETSTATE"] = reflect.TypeOf((*CABINETSTATE)(nil)).Elem()
    61  	types["CABOOL"] = reflect.TypeOf((*CABOOL)(nil)).Elem()
    62  	types["CABSTR"] = reflect.TypeOf((*CABSTR)(nil)).Elem()
    63  	types["CABSTRBLOB"] = reflect.TypeOf((*CABSTRBLOB)(nil)).Elem()
    64  	types["CAC"] = reflect.TypeOf((*CAC)(nil)).Elem()
    65  	types["CACLIPDATA"] = reflect.TypeOf((*CACLIPDATA)(nil)).Elem()
    66  	types["CACLSID"] = reflect.TypeOf((*CACLSID)(nil)).Elem()
    67  	types["CACY"] = reflect.TypeOf((*CACY)(nil)).Elem()
    68  	types["CADATE"] = reflect.TypeOf((*CADATE)(nil)).Elem()
    69  	types["CADBL"] = reflect.TypeOf((*CADBL)(nil)).Elem()
    70  	types["CAFILETIME"] = reflect.TypeOf((*CAFILETIME)(nil)).Elem()
    71  	types["CAFLT"] = reflect.TypeOf((*CAFLT)(nil)).Elem()
    72  	types["CAH"] = reflect.TypeOf((*CAH)(nil)).Elem()
    73  	types["CAI"] = reflect.TypeOf((*CAI)(nil)).Elem()
    74  	types["CAL"] = reflect.TypeOf((*CAL)(nil)).Elem()
    75  	types["CALID"] = reflect.TypeOf((*CALID)(nil)).Elem()
    76  	types["CALLCONV"] = reflect.TypeOf((*CALLCONV)(nil)).Elem()
    77  	types["CALPSTR"] = reflect.TypeOf((*CALPSTR)(nil)).Elem()
    78  	types["CALPWSTR"] = reflect.TypeOf((*CALPWSTR)(nil)).Elem()
    79  	types["CALTYPE"] = reflect.TypeOf((*CALTYPE)(nil)).Elem()
    80  	types["CANDIDATEFORM"] = reflect.TypeOf((*CANDIDATEFORM)(nil)).Elem()
    81  	types["CANDIDATELIST"] = reflect.TypeOf((*CANDIDATELIST)(nil)).Elem()
    82  	types["CAPROPVARIANT"] = reflect.TypeOf((*CAPROPVARIANT)(nil)).Elem()
    83  	types["CASCODE"] = reflect.TypeOf((*CASCODE)(nil)).Elem()
    84  	types["CAUB"] = reflect.TypeOf((*CAUB)(nil)).Elem()
    85  	types["CAUH"] = reflect.TypeOf((*CAUH)(nil)).Elem()
    86  	types["CAUI"] = reflect.TypeOf((*CAUI)(nil)).Elem()
    87  	types["CAUL"] = reflect.TypeOf((*CAUL)(nil)).Elem()
    88  	types["CCHOOKPROC"] = reflect.TypeOf((*CCHOOKPROC)(nil)).Elem()
    89  	types["CERT_CONTEXT"] = reflect.TypeOf((*CERT_CONTEXT)(nil)).Elem()
    90  	types["CERT_EXTENSION"] = reflect.TypeOf((*CERT_EXTENSION)(nil)).Elem()
    91  	types["CERT_INFO"] = reflect.TypeOf((*CERT_INFO)(nil)).Elem()
    92  	types["CERT_NAME_BLOB"] = reflect.TypeOf((*CERT_NAME_BLOB)(nil)).Elem()
    93  	types["CERT_PUBLIC_KEY_INFO"] = reflect.TypeOf((*CERT_PUBLIC_KEY_INFO)(nil)).Elem()
    94  	types["CERT_RDN_VALUE_BLOB"] = reflect.TypeOf((*CERT_RDN_VALUE_BLOB)(nil)).Elem()
    95  	types["CHAR"] = reflect.TypeOf((*CHAR)(nil)).Elem()
    96  	types["CHARSETINFO"] = reflect.TypeOf((*CHARSETINFO)(nil)).Elem()
    97  	types["CHOOSECOLOR"] = reflect.TypeOf((*CHOOSECOLOR)(nil)).Elem()
    98  	types["CHOOSEFONT"] = reflect.TypeOf((*CHOOSEFONT)(nil)).Elem()
    99  	types["CIEXYZ"] = reflect.TypeOf((*CIEXYZ)(nil)).Elem()
   100  	types["CIEXYZTRIPLE"] = reflect.TypeOf((*CIEXYZTRIPLE)(nil)).Elem()
   101  	types["CLIPDATA"] = reflect.TypeOf((*CLIPDATA)(nil)).Elem()
   102  	types["CLIPFORMAT"] = reflect.TypeOf((*CLIPFORMAT)(nil)).Elem()
   103  	types["CLIPLINE"] = reflect.TypeOf((*CLIPLINE)(nil)).Elem()
   104  	types["CLIPOBJ"] = reflect.TypeOf((*CLIPOBJ)(nil)).Elem()
   105  	types["CLSID"] = reflect.TypeOf((*CLSID)(nil)).Elem()
   106  	types["COAUTHIDENTITY"] = reflect.TypeOf((*COAUTHIDENTITY)(nil)).Elem()
   107  	types["COAUTHINFO"] = reflect.TypeOf((*COAUTHINFO)(nil)).Elem()
   108  	types["COLOR16"] = reflect.TypeOf((*COLOR16)(nil)).Elem()
   109  	types["COLORADJUSTMENT"] = reflect.TypeOf((*COLORADJUSTMENT)(nil)).Elem()
   110  	types["COLORMAP"] = reflect.TypeOf((*COLORMAP)(nil)).Elem()
   111  	types["COLORREF"] = reflect.TypeOf((*COLORREF)(nil)).Elem()
   112  	types["COMBOBOXINFO"] = reflect.TypeOf((*COMBOBOXINFO)(nil)).Elem()
   113  	types["COMM_FAULT_OFFSETS"] = reflect.TypeOf((*COMM_FAULT_OFFSETS)(nil)).Elem()
   114  	types["COMPOSITIONFORM"] = reflect.TypeOf((*COMPOSITIONFORM)(nil)).Elem()
   115  	types["CONSOLE_SCREEN_BUFFER_INFO"] = reflect.TypeOf((*CONSOLE_SCREEN_BUFFER_INFO)(nil)).Elem()
   116  	types["CONSOLE_SCREEN_BUFFER_INFOEX"] = reflect.TypeOf((*CONSOLE_SCREEN_BUFFER_INFOEX)(nil)).Elem()
   117  	types["CONVCONTEXT"] = reflect.TypeOf((*CONVCONTEXT)(nil)).Elem()
   118  	types["CONVINFO"] = reflect.TypeOf((*CONVINFO)(nil)).Elem()
   119  	types["COORD"] = reflect.TypeOf((*COORD)(nil)).Elem()
   120  	types["COSERVERINFO"] = reflect.TypeOf((*COSERVERINFO)(nil)).Elem()
   121  	types["CPINFO"] = reflect.TypeOf((*CPINFO)(nil)).Elem()
   122  	types["CPINFOEX"] = reflect.TypeOf((*CPINFOEX)(nil)).Elem()
   123  	types["CREDENTIAL"] = reflect.TypeOf((*CREDENTIAL)(nil)).Elem()
   124  	types["CREDENTIAL_ATTRIBUTE"] = reflect.TypeOf((*CREDENTIAL_ATTRIBUTE)(nil)).Elem()
   125  	types["CRL_CONTEXT"] = reflect.TypeOf((*CRL_CONTEXT)(nil)).Elem()
   126  	types["CRL_ENTRY"] = reflect.TypeOf((*CRL_ENTRY)(nil)).Elem()
   127  	types["CRL_INFO"] = reflect.TypeOf((*CRL_INFO)(nil)).Elem()
   128  	types["CRYPTOAPI_BLOB_"] = reflect.TypeOf((*CRYPTOAPI_BLOB_)(nil)).Elem()
   129  	types["CRYPT_ALGORITHM_IDENTIFIER"] = reflect.TypeOf((*CRYPT_ALGORITHM_IDENTIFIER)(nil)).Elem()
   130  	types["CRYPT_ATTRIBUTE"] = reflect.TypeOf((*CRYPT_ATTRIBUTE)(nil)).Elem()
   131  	types["CRYPT_ATTR_BLOB"] = reflect.TypeOf((*CRYPT_ATTR_BLOB)(nil)).Elem()
   132  	types["CRYPT_BIT_BLOB"] = reflect.TypeOf((*CRYPT_BIT_BLOB)(nil)).Elem()
   133  	types["CRYPT_DATA_BLOB"] = reflect.TypeOf((*CRYPT_DATA_BLOB)(nil)).Elem()
   134  	types["CRYPT_DER_BLOB"] = reflect.TypeOf((*CRYPT_DER_BLOB)(nil)).Elem()
   135  	types["CRYPT_HASH_BLOB"] = reflect.TypeOf((*CRYPT_HASH_BLOB)(nil)).Elem()
   136  	types["CRYPT_INTEGER_BLOB"] = reflect.TypeOf((*CRYPT_INTEGER_BLOB)(nil)).Elem()
   137  	types["CRYPT_OBJID_BLOB"] = reflect.TypeOf((*CRYPT_OBJID_BLOB)(nil)).Elem()
   138  	types["CSADDR_INFO"] = reflect.TypeOf((*CSADDR_INFO)(nil)).Elem()
   139  	types["CSFV"] = reflect.TypeOf((*CSFV)(nil)).Elem()
   140  	types["CS_TAG_GETTING_ROUTINE"] = reflect.TypeOf((*CS_TAG_GETTING_ROUTINE)(nil)).Elem()
   141  	types["CS_TYPE_FROM_NETCS_ROUTINE"] = reflect.TypeOf((*CS_TYPE_FROM_NETCS_ROUTINE)(nil)).Elem()
   142  	types["CS_TYPE_LOCAL_SIZE_ROUTINE"] = reflect.TypeOf((*CS_TYPE_LOCAL_SIZE_ROUTINE)(nil)).Elem()
   143  	types["CS_TYPE_NET_SIZE_ROUTINE"] = reflect.TypeOf((*CS_TYPE_NET_SIZE_ROUTINE)(nil)).Elem()
   144  	types["CS_TYPE_TO_NETCS_ROUTINE"] = reflect.TypeOf((*CS_TYPE_TO_NETCS_ROUTINE)(nil)).Elem()
   145  	types["CTL_CONTEXT"] = reflect.TypeOf((*CTL_CONTEXT)(nil)).Elem()
   146  	types["CTL_ENTRY"] = reflect.TypeOf((*CTL_ENTRY)(nil)).Elem()
   147  	types["CTL_INFO"] = reflect.TypeOf((*CTL_INFO)(nil)).Elem()
   148  	types["CTL_USAGE"] = reflect.TypeOf((*CTL_USAGE)(nil)).Elem()
   149  	types["CURSORINFO"] = reflect.TypeOf((*CURSORINFO)(nil)).Elem()
   150  	types["CUSTDATA"] = reflect.TypeOf((*CUSTDATA)(nil)).Elem()
   151  	types["CUSTDATAITEM"] = reflect.TypeOf((*CUSTDATAITEM)(nil)).Elem()
   152  	types["CY"] = reflect.TypeOf((*CY)(nil)).Elem()
   153  	types["DACOMPARE"] = reflect.TypeOf((*DACOMPARE)(nil)).Elem()
   154  	types["DAENUMCALLBACK"] = reflect.TypeOf((*DAENUMCALLBACK)(nil)).Elem()
   155  	types["DATAOBJ_GET_ITEM_FLAGS"] = reflect.TypeOf((*DATAOBJ_GET_ITEM_FLAGS)(nil)).Elem()
   156  	types["DATE"] = reflect.TypeOf((*DATE)(nil)).Elem()
   157  	types["DATETIME"] = reflect.TypeOf((*DATETIME)(nil)).Elem()
   158  	types["DECIMAL"] = reflect.TypeOf((*DECIMAL)(nil)).Elem()
   159  	types["DEFCONTEXTMENU"] = reflect.TypeOf((*DEFCONTEXTMENU)(nil)).Elem()
   160  	types["DESIGNVECTOR"] = reflect.TypeOf((*DESIGNVECTOR)(nil)).Elem()
   161  	types["DESKTOPENUMPROC"] = reflect.TypeOf((*DESKTOPENUMPROC)(nil)).Elem()
   162  	types["DEVMODE"] = reflect.TypeOf((*DEVMODE)(nil)).Elem()
   163  	types["DHPDEV"] = reflect.TypeOf((*DHPDEV)(nil)).Elem()
   164  	types["DHSURF"] = reflect.TypeOf((*DHSURF)(nil)).Elem()
   165  	types["DISPID"] = reflect.TypeOf((*DISPID)(nil)).Elem()
   166  	types["DISPLAY_DEVICE"] = reflect.TypeOf((*DISPLAY_DEVICE)(nil)).Elem()
   167  	types["DISPPARAMS"] = reflect.TypeOf((*DISPPARAMS)(nil)).Elem()
   168  	types["DLGPROC"] = reflect.TypeOf((*DLGPROC)(nil)).Elem()
   169  	types["DLGTEMPLATE"] = reflect.TypeOf((*DLGTEMPLATE)(nil)).Elem()
   170  	types["DOCINFO"] = reflect.TypeOf((*DOCINFO)(nil)).Elem()
   171  	types["DOUBLE"] = reflect.TypeOf((*DOUBLE)(nil)).Elem()
   172  	types["DRAWSTATEPROC"] = reflect.TypeOf((*DRAWSTATEPROC)(nil)).Elem()
   173  	types["DRAWTEXTPARAMS"] = reflect.TypeOf((*DRAWTEXTPARAMS)(nil)).Elem()
   174  	types["DTBGOPTS"] = reflect.TypeOf((*DTBGOPTS)(nil)).Elem()
   175  	types["DTTOPTS"] = reflect.TypeOf((*DTTOPTS)(nil)).Elem()
   176  	types["DTT_CALLBACK_PROC"] = reflect.TypeOf((*DTT_CALLBACK_PROC)(nil)).Elem()
   177  	types["DVTARGETDEVICE"] = reflect.TypeOf((*DVTARGETDEVICE)(nil)).Elem()
   178  	types["DWORD"] = reflect.TypeOf((*DWORD)(nil)).Elem()
   179  	types["DWORD_PTR"] = reflect.TypeOf((*DWORD_PTR)(nil)).Elem()
   180  	types["EFS_CERTIFICATE_BLOB"] = reflect.TypeOf((*EFS_CERTIFICATE_BLOB)(nil)).Elem()
   181  	types["ENCRYPTION_CERTIFICATE"] = reflect.TypeOf((*ENCRYPTION_CERTIFICATE)(nil)).Elem()
   182  	types["ENCRYPTION_CERTIFICATE_LIST"] = reflect.TypeOf((*ENCRYPTION_CERTIFICATE_LIST)(nil)).Elem()
   183  	types["ENG_TIME_FIELDS"] = reflect.TypeOf((*ENG_TIME_FIELDS)(nil)).Elem()
   184  	types["ENHMETAHEADER"] = reflect.TypeOf((*ENHMETAHEADER)(nil)).Elem()
   185  	types["ENHMETARECORD"] = reflect.TypeOf((*ENHMETARECORD)(nil)).Elem()
   186  	types["ENHMFENUMPROC"] = reflect.TypeOf((*ENHMFENUMPROC)(nil)).Elem()
   187  	types["ENUMLOGFONTEX"] = reflect.TypeOf((*ENUMLOGFONTEX)(nil)).Elem()
   188  	types["ENUMLOGFONTEXDV"] = reflect.TypeOf((*ENUMLOGFONTEXDV)(nil)).Elem()
   189  	types["ENUMRESLANGPROC"] = reflect.TypeOf((*ENUMRESLANGPROC)(nil)).Elem()
   190  	types["ENUM_PAGE_FILE_INFORMATION"] = reflect.TypeOf((*ENUM_PAGE_FILE_INFORMATION)(nil)).Elem()
   191  	types["EXCEPINFO"] = reflect.TypeOf((*EXCEPINFO)(nil)).Elem()
   192  	types["EXPLICIT_ACCESS"] = reflect.TypeOf((*EXPLICIT_ACCESS)(nil)).Elem()
   193  	types["EXPR_EVAL"] = reflect.TypeOf((*EXPR_EVAL)(nil)).Elem()
   194  	types["Error_status_t"] = reflect.TypeOf((*Error_status_t)(nil)).Elem()
   195  	types["FARPROC"] = reflect.TypeOf((*FARPROC)(nil)).Elem()
   196  	types["FD_GLYPHATTR"] = reflect.TypeOf((*FD_GLYPHATTR)(nil)).Elem()
   197  	types["FILEOP_FLAGS"] = reflect.TypeOf((*FILEOP_FLAGS)(nil)).Elem()
   198  	types["FILETIME"] = reflect.TypeOf((*FILETIME)(nil)).Elem()
   199  	types["FINDREPLACE"] = reflect.TypeOf((*FINDREPLACE)(nil)).Elem()
   200  	types["FIX"] = reflect.TypeOf((*FIX)(nil)).Elem()
   201  	types["FIXED"] = reflect.TypeOf((*FIXED)(nil)).Elem()
   202  	types["FIXED_INFO_W2KSP1"] = reflect.TypeOf((*FIXED_INFO_W2KSP1)(nil)).Elem()
   203  	types["FLASHWINFO"] = reflect.TypeOf((*FLASHWINFO)(nil)).Elem()
   204  	types["FLOAT"] = reflect.TypeOf((*FLOAT)(nil)).Elem()
   205  	types["FLOATL"] = reflect.TypeOf((*FLOATL)(nil)).Elem()
   206  	types["FLOAT_LONG"] = reflect.TypeOf((*FLOAT_LONG)(nil)).Elem()
   207  	types["FLONG"] = reflect.TypeOf((*FLONG)(nil)).Elem()
   208  	types["FLOWSPEC"] = reflect.TypeOf((*FLOWSPEC)(nil)).Elem()
   209  	types["FMTID"] = reflect.TypeOf((*FMTID)(nil)).Elem()
   210  	types["FOLDERVIEWMODE"] = reflect.TypeOf((*FOLDERVIEWMODE)(nil)).Elem()
   211  	types["FONTDESC"] = reflect.TypeOf((*FONTDESC)(nil)).Elem()
   212  	types["FONTENUMPROC"] = reflect.TypeOf((*FONTENUMPROC)(nil)).Elem()
   213  	types["FONTINFO"] = reflect.TypeOf((*FONTINFO)(nil)).Elem()
   214  	types["FONTOBJ"] = reflect.TypeOf((*FONTOBJ)(nil)).Elem()
   215  	types["FONTSIGNATURE"] = reflect.TypeOf((*FONTSIGNATURE)(nil)).Elem()
   216  	types["FORMATETC"] = reflect.TypeOf((*FORMATETC)(nil)).Elem()
   217  	types["FOURCC"] = reflect.TypeOf((*FOURCC)(nil)).Elem()
   218  	types["FULL_PTR_XLAT_TABLES"] = reflect.TypeOf((*FULL_PTR_XLAT_TABLES)(nil)).Elem()
   219  	types["FXPT2DOT30"] = reflect.TypeOf((*FXPT2DOT30)(nil)).Elem()
   220  	types["GCP_RESULTS"] = reflect.TypeOf((*GCP_RESULTS)(nil)).Elem()
   221  	types["GENERIC_BINDING_INFO"] = reflect.TypeOf((*GENERIC_BINDING_INFO)(nil)).Elem()
   222  	types["GENERIC_BINDING_ROUTINE"] = reflect.TypeOf((*GENERIC_BINDING_ROUTINE)(nil)).Elem()
   223  	types["GENERIC_BINDING_ROUTINE_PAIR"] = reflect.TypeOf((*GENERIC_BINDING_ROUTINE_PAIR)(nil)).Elem()
   224  	types["GENERIC_MAPPING"] = reflect.TypeOf((*GENERIC_MAPPING)(nil)).Elem()
   225  	types["GENERIC_UNBIND_ROUTINE"] = reflect.TypeOf((*GENERIC_UNBIND_ROUTINE)(nil)).Elem()
   226  	types["GEOID"] = reflect.TypeOf((*GEOID)(nil)).Elem()
   227  	types["GESTURECONFIG"] = reflect.TypeOf((*GESTURECONFIG)(nil)).Elem()
   228  	types["GESTUREINFO"] = reflect.TypeOf((*GESTUREINFO)(nil)).Elem()
   229  	types["GETPROPERTYSTOREFLAGS"] = reflect.TypeOf((*GETPROPERTYSTOREFLAGS)(nil)).Elem()
   230  	types["GLYPHBITS"] = reflect.TypeOf((*GLYPHBITS)(nil)).Elem()
   231  	types["GLYPHDEF"] = reflect.TypeOf((*GLYPHDEF)(nil)).Elem()
   232  	types["GLYPHMETRICS"] = reflect.TypeOf((*GLYPHMETRICS)(nil)).Elem()
   233  	types["GLYPHMETRICSFLOAT"] = reflect.TypeOf((*GLYPHMETRICSFLOAT)(nil)).Elem()
   234  	types["GLYPHPOS"] = reflect.TypeOf((*GLYPHPOS)(nil)).Elem()
   235  	types["GLYPHSET"] = reflect.TypeOf((*GLYPHSET)(nil)).Elem()
   236  	types["GLbitfield"] = reflect.TypeOf((*GLbitfield)(nil)).Elem()
   237  	types["GLboolean"] = reflect.TypeOf((*GLboolean)(nil)).Elem()
   238  	types["GLbyte"] = reflect.TypeOf((*GLbyte)(nil)).Elem()
   239  	types["GLclampd"] = reflect.TypeOf((*GLclampd)(nil)).Elem()
   240  	types["GLclampf"] = reflect.TypeOf((*GLclampf)(nil)).Elem()
   241  	types["GLdouble"] = reflect.TypeOf((*GLdouble)(nil)).Elem()
   242  	types["GLenum"] = reflect.TypeOf((*GLenum)(nil)).Elem()
   243  	types["GLfloat"] = reflect.TypeOf((*GLfloat)(nil)).Elem()
   244  	types["GLint"] = reflect.TypeOf((*GLint)(nil)).Elem()
   245  	types["GLshort"] = reflect.TypeOf((*GLshort)(nil)).Elem()
   246  	types["GLsizei"] = reflect.TypeOf((*GLsizei)(nil)).Elem()
   247  	types["GLubyte"] = reflect.TypeOf((*GLubyte)(nil)).Elem()
   248  	types["GLuint"] = reflect.TypeOf((*GLuint)(nil)).Elem()
   249  	types["GLushort"] = reflect.TypeOf((*GLushort)(nil)).Elem()
   250  	types["GOBJENUMPROC"] = reflect.TypeOf((*GOBJENUMPROC)(nil)).Elem()
   251  	types["GRAYSTRINGPROC"] = reflect.TypeOf((*GRAYSTRINGPROC)(nil)).Elem()
   252  	types["GROUP"] = reflect.TypeOf((*GROUP)(nil)).Elem()
   253  	types["GUID"] = reflect.TypeOf((*GUID)(nil)).Elem()
   254  	types["GUITHREADINFO"] = reflect.TypeOf((*GUITHREADINFO)(nil)).Elem()
   255  	types["GdiplusStartupInput"] = reflect.TypeOf((*GdiplusStartupInput)(nil)).Elem()
   256  	types["GdiplusStartupOutput"] = reflect.TypeOf((*GdiplusStartupOutput)(nil)).Elem()
   257  	types["GpStatus"] = reflect.TypeOf((*GpStatus)(nil)).Elem()
   258  	types["HACCEL"] = reflect.TypeOf((*HACCEL)(nil)).Elem()
   259  	types["HANDLE"] = reflect.TypeOf((*HANDLE)(nil)).Elem()
   260  	types["HANDLER_FUNCTION_EX"] = reflect.TypeOf((*HANDLER_FUNCTION_EX)(nil)).Elem()
   261  	types["HANDLETABLE"] = reflect.TypeOf((*HANDLETABLE)(nil)).Elem()
   262  	types["HANIMATIONBUFFER"] = reflect.TypeOf((*HANIMATIONBUFFER)(nil)).Elem()
   263  	types["HARDWAREINPUT"] = reflect.TypeOf((*HARDWAREINPUT)(nil)).Elem()
   264  	types["HBITMAP"] = reflect.TypeOf((*HBITMAP)(nil)).Elem()
   265  	types["HBRUSH"] = reflect.TypeOf((*HBRUSH)(nil)).Elem()
   266  	types["HCERTSTORE"] = reflect.TypeOf((*HCERTSTORE)(nil)).Elem()
   267  	types["HCOLORSPACE"] = reflect.TypeOf((*HCOLORSPACE)(nil)).Elem()
   268  	types["HCONV"] = reflect.TypeOf((*HCONV)(nil)).Elem()
   269  	types["HCONVLIST"] = reflect.TypeOf((*HCONVLIST)(nil)).Elem()
   270  	types["HCRYPTHASH"] = reflect.TypeOf((*HCRYPTHASH)(nil)).Elem()
   271  	types["HCRYPTKEY"] = reflect.TypeOf((*HCRYPTKEY)(nil)).Elem()
   272  	types["HCRYPTMSG"] = reflect.TypeOf((*HCRYPTMSG)(nil)).Elem()
   273  	types["HCRYPTPROV"] = reflect.TypeOf((*HCRYPTPROV)(nil)).Elem()
   274  	types["HCURSOR"] = reflect.TypeOf((*HCURSOR)(nil)).Elem()
   275  	types["HDC"] = reflect.TypeOf((*HDC)(nil)).Elem()
   276  	types["HDDEDATA"] = reflect.TypeOf((*HDDEDATA)(nil)).Elem()
   277  	types["HDESK"] = reflect.TypeOf((*HDESK)(nil)).Elem()
   278  	types["HDEV"] = reflect.TypeOf((*HDEV)(nil)).Elem()
   279  	types["HDEVNOTIFY"] = reflect.TypeOf((*HDEVNOTIFY)(nil)).Elem()
   280  	types["HDPA"] = reflect.TypeOf((*HDPA)(nil)).Elem()
   281  	types["HDROP"] = reflect.TypeOf((*HDROP)(nil)).Elem()
   282  	types["HDRVR"] = reflect.TypeOf((*HDRVR)(nil)).Elem()
   283  	types["HDSA"] = reflect.TypeOf((*HDSA)(nil)).Elem()
   284  	types["HDWP"] = reflect.TypeOf((*HDWP)(nil)).Elem()
   285  	types["HELPINFO"] = reflect.TypeOf((*HELPINFO)(nil)).Elem()
   286  	types["HENHMETAFILE"] = reflect.TypeOf((*HENHMETAFILE)(nil)).Elem()
   287  	types["HFONT"] = reflect.TypeOf((*HFONT)(nil)).Elem()
   288  	types["HGDIOBJ"] = reflect.TypeOf((*HGDIOBJ)(nil)).Elem()
   289  	types["HGESTUREINFO"] = reflect.TypeOf((*HGESTUREINFO)(nil)).Elem()
   290  	types["HGLOBAL"] = reflect.TypeOf((*HGLOBAL)(nil)).Elem()
   291  	types["HGLRC"] = reflect.TypeOf((*HGLRC)(nil)).Elem()
   292  	types["HGLYPH"] = reflect.TypeOf((*HGLYPH)(nil)).Elem()
   293  	types["HHOOK"] = reflect.TypeOf((*HHOOK)(nil)).Elem()
   294  	types["HICON"] = reflect.TypeOf((*HICON)(nil)).Elem()
   295  	types["HIMAGELIST"] = reflect.TypeOf((*HIMAGELIST)(nil)).Elem()
   296  	types["HIMC"] = reflect.TypeOf((*HIMC)(nil)).Elem()
   297  	types["HIMCC"] = reflect.TypeOf((*HIMCC)(nil)).Elem()
   298  	types["HINSTANCE"] = reflect.TypeOf((*HINSTANCE)(nil)).Elem()
   299  	types["HKEY"] = reflect.TypeOf((*HKEY)(nil)).Elem()
   300  	types["HKL"] = reflect.TypeOf((*HKL)(nil)).Elem()
   301  	types["HLOCAL"] = reflect.TypeOf((*HLOCAL)(nil)).Elem()
   302  	types["HMENU"] = reflect.TypeOf((*HMENU)(nil)).Elem()
   303  	types["HMETAFILE"] = reflect.TypeOf((*HMETAFILE)(nil)).Elem()
   304  	types["HMETAFILEPICT"] = reflect.TypeOf((*HMETAFILEPICT)(nil)).Elem()
   305  	types["HMIDI"] = reflect.TypeOf((*HMIDI)(nil)).Elem()
   306  	types["HMIDIIN"] = reflect.TypeOf((*HMIDIIN)(nil)).Elem()
   307  	types["HMIDIOUT"] = reflect.TypeOf((*HMIDIOUT)(nil)).Elem()
   308  	types["HMIDISTRM"] = reflect.TypeOf((*HMIDISTRM)(nil)).Elem()
   309  	types["HMIXER"] = reflect.TypeOf((*HMIXER)(nil)).Elem()
   310  	types["HMIXEROBJ"] = reflect.TypeOf((*HMIXEROBJ)(nil)).Elem()
   311  	types["HMMIO"] = reflect.TypeOf((*HMMIO)(nil)).Elem()
   312  	types["HMODULE"] = reflect.TypeOf((*HMODULE)(nil)).Elem()
   313  	types["HMONITOR"] = reflect.TypeOf((*HMONITOR)(nil)).Elem()
   314  	types["HOLEMENU"] = reflect.TypeOf((*HOLEMENU)(nil)).Elem()
   315  	types["HOOKPROC"] = reflect.TypeOf((*HOOKPROC)(nil)).Elem()
   316  	types["HPAINTBUFFER"] = reflect.TypeOf((*HPAINTBUFFER)(nil)).Elem()
   317  	types["HPALETTE"] = reflect.TypeOf((*HPALETTE)(nil)).Elem()
   318  	types["HPEN"] = reflect.TypeOf((*HPEN)(nil)).Elem()
   319  	types["HPOWERNOTIFY"] = reflect.TypeOf((*HPOWERNOTIFY)(nil)).Elem()
   320  	types["HPROPSHEETPAGE"] = reflect.TypeOf((*HPROPSHEETPAGE)(nil)).Elem()
   321  	types["HPSTR"] = reflect.TypeOf((*HPSTR)(nil)).Elem()
   322  	types["HPSXA"] = reflect.TypeOf((*HPSXA)(nil)).Elem()
   323  	types["HRAWINPUT"] = reflect.TypeOf((*HRAWINPUT)(nil)).Elem()
   324  	types["HRESULT"] = reflect.TypeOf((*HRESULT)(nil)).Elem()
   325  	types["HRGN"] = reflect.TypeOf((*HRGN)(nil)).Elem()
   326  	types["HRSRC"] = reflect.TypeOf((*HRSRC)(nil)).Elem()
   327  	types["HSEMAPHORE"] = reflect.TypeOf((*HSEMAPHORE)(nil)).Elem()
   328  	types["HSURF"] = reflect.TypeOf((*HSURF)(nil)).Elem()
   329  	types["HSZ"] = reflect.TypeOf((*HSZ)(nil)).Elem()
   330  	types["HTASK"] = reflect.TypeOf((*HTASK)(nil)).Elem()
   331  	types["HTHEME"] = reflect.TypeOf((*HTHEME)(nil)).Elem()
   332  	types["HTOUCHINPUT"] = reflect.TypeOf((*HTOUCHINPUT)(nil)).Elem()
   333  	types["HUSKEY"] = reflect.TypeOf((*HUSKEY)(nil)).Elem()
   334  	types["HWAVEIN"] = reflect.TypeOf((*HWAVEIN)(nil)).Elem()
   335  	types["HWAVEOUT"] = reflect.TypeOf((*HWAVEOUT)(nil)).Elem()
   336  	types["HWCT"] = reflect.TypeOf((*HWCT)(nil)).Elem()
   337  	types["HWINEVENTHOOK"] = reflect.TypeOf((*HWINEVENTHOOK)(nil)).Elem()
   338  	types["HWINSTA"] = reflect.TypeOf((*HWINSTA)(nil)).Elem()
   339  	types["HWND"] = reflect.TypeOf((*HWND)(nil)).Elem()
   340  	types["Handle_t"] = reflect.TypeOf((*Handle_t)(nil)).Elem()
   341  	types["IAdviseSink"] = reflect.TypeOf((*IAdviseSink)(nil)).Elem()
   342  	types["IBindCtx"] = reflect.TypeOf((*IBindCtx)(nil)).Elem()
   343  	types["ICMENUMPROC"] = reflect.TypeOf((*ICMENUMPROC)(nil)).Elem()
   344  	types["ICONINFO"] = reflect.TypeOf((*ICONINFO)(nil)).Elem()
   345  	types["IChannelHook"] = reflect.TypeOf((*IChannelHook)(nil)).Elem()
   346  	types["IClassFactory"] = reflect.TypeOf((*IClassFactory)(nil)).Elem()
   347  	types["IConnectionPoint"] = reflect.TypeOf((*IConnectionPoint)(nil)).Elem()
   348  	types["IContextMenu"] = reflect.TypeOf((*IContextMenu)(nil)).Elem()
   349  	types["IContextMenuCB"] = reflect.TypeOf((*IContextMenuCB)(nil)).Elem()
   350  	types["ICreateErrorInfo"] = reflect.TypeOf((*ICreateErrorInfo)(nil)).Elem()
   351  	types["ICreateTypeLib"] = reflect.TypeOf((*ICreateTypeLib)(nil)).Elem()
   352  	types["ICreateTypeLib2"] = reflect.TypeOf((*ICreateTypeLib2)(nil)).Elem()
   353  	types["IDL_CS_CONVERT"] = reflect.TypeOf((*IDL_CS_CONVERT)(nil)).Elem()
   354  	types["IDataAdviseHolder"] = reflect.TypeOf((*IDataAdviseHolder)(nil)).Elem()
   355  	types["IDataObject"] = reflect.TypeOf((*IDataObject)(nil)).Elem()
   356  	types["IDispatch"] = reflect.TypeOf((*IDispatch)(nil)).Elem()
   357  	types["IDropSource"] = reflect.TypeOf((*IDropSource)(nil)).Elem()
   358  	types["IDropTarget"] = reflect.TypeOf((*IDropTarget)(nil)).Elem()
   359  	types["IEnumAssocHandlers"] = reflect.TypeOf((*IEnumAssocHandlers)(nil)).Elem()
   360  	types["IEnumFORMATETC"] = reflect.TypeOf((*IEnumFORMATETC)(nil)).Elem()
   361  	types["IEnumOLEVERB"] = reflect.TypeOf((*IEnumOLEVERB)(nil)).Elem()
   362  	types["IErrorInfo"] = reflect.TypeOf((*IErrorInfo)(nil)).Elem()
   363  	types["IFTYPE"] = reflect.TypeOf((*IFTYPE)(nil)).Elem()
   364  	types["IF_INDEX"] = reflect.TypeOf((*IF_INDEX)(nil)).Elem()
   365  	types["IF_LUID"] = reflect.TypeOf((*IF_LUID)(nil)).Elem()
   366  	types["IF_OPER_STATUS"] = reflect.TypeOf((*IF_OPER_STATUS)(nil)).Elem()
   367  	types["IID"] = reflect.TypeOf((*IID)(nil)).Elem()
   368  	types["IInitializeSpy"] = reflect.TypeOf((*IInitializeSpy)(nil)).Elem()
   369  	types["ILockBytes"] = reflect.TypeOf((*ILockBytes)(nil)).Elem()
   370  	types["IMAGEINFO"] = reflect.TypeOf((*IMAGEINFO)(nil)).Elem()
   371  	types["IMAGELISTDRAWPARAMS"] = reflect.TypeOf((*IMAGELISTDRAWPARAMS)(nil)).Elem()
   372  	types["IMCENUMPROC"] = reflect.TypeOf((*IMCENUMPROC)(nil)).Elem()
   373  	types["IMEMENUITEMINFO"] = reflect.TypeOf((*IMEMENUITEMINFO)(nil)).Elem()
   374  	types["IMEPRO"] = reflect.TypeOf((*IMEPRO)(nil)).Elem()
   375  	types["IMalloc"] = reflect.TypeOf((*IMalloc)(nil)).Elem()
   376  	types["IMallocSpy"] = reflect.TypeOf((*IMallocSpy)(nil)).Elem()
   377  	types["IMarshal"] = reflect.TypeOf((*IMarshal)(nil)).Elem()
   378  	types["IMessageFilter"] = reflect.TypeOf((*IMessageFilter)(nil)).Elem()
   379  	types["IMoniker"] = reflect.TypeOf((*IMoniker)(nil)).Elem()
   380  	types["IN6_ADDR"] = reflect.TypeOf((*IN6_ADDR)(nil)).Elem()
   381  	types["INITCOMMONCONTROLSEX"] = reflect.TypeOf((*INITCOMMONCONTROLSEX)(nil)).Elem()
   382  	types["INPUT"] = reflect.TypeOf((*INPUT)(nil)).Elem()
   383  	types["INPUTCONTEXT"] = reflect.TypeOf((*INPUTCONTEXT)(nil)).Elem()
   384  	types["INT"] = reflect.TypeOf((*INT)(nil)).Elem()
   385  	types["INTERFACEDATA"] = reflect.TypeOf((*INTERFACEDATA)(nil)).Elem()
   386  	types["INTERFACE_HANDLE"] = reflect.TypeOf((*INTERFACE_HANDLE)(nil)).Elem()
   387  	types["INTERNAL_IF_OPER_STATUS"] = reflect.TypeOf((*INTERNAL_IF_OPER_STATUS)(nil)).Elem()
   388  	types["INTLIST"] = reflect.TypeOf((*INTLIST)(nil)).Elem()
   389  	types["INT_PTR"] = reflect.TypeOf((*INT_PTR)(nil)).Elem()
   390  	types["IN_ADDR"] = reflect.TypeOf((*IN_ADDR)(nil)).Elem()
   391  	types["IO_STATUS_BLOCK"] = reflect.TypeOf((*IO_STATUS_BLOCK)(nil)).Elem()
   392  	types["IOleAdviseHolder"] = reflect.TypeOf((*IOleAdviseHolder)(nil)).Elem()
   393  	types["IOleClientSite"] = reflect.TypeOf((*IOleClientSite)(nil)).Elem()
   394  	types["IOleInPlaceActiveObject"] = reflect.TypeOf((*IOleInPlaceActiveObject)(nil)).Elem()
   395  	types["IOleInPlaceFrame"] = reflect.TypeOf((*IOleInPlaceFrame)(nil)).Elem()
   396  	types["IOleObject"] = reflect.TypeOf((*IOleObject)(nil)).Elem()
   397  	types["IPAddr"] = reflect.TypeOf((*IPAddr)(nil)).Elem()
   398  	types["IPMask"] = reflect.TypeOf((*IPMask)(nil)).Elem()
   399  	types["IP_ADAPTER_ADDRESSES_LH"] = reflect.TypeOf((*IP_ADAPTER_ADDRESSES_LH)(nil)).Elem()
   400  	types["IP_ADAPTER_ANYCAST_ADDRESS_XP"] = reflect.TypeOf((*IP_ADAPTER_ANYCAST_ADDRESS_XP)(nil)).Elem()
   401  	types["IP_ADAPTER_DNS_SERVER_ADDRESS_XP"] = reflect.TypeOf((*IP_ADAPTER_DNS_SERVER_ADDRESS_XP)(nil)).Elem()
   402  	types["IP_ADAPTER_DNS_SUFFIX"] = reflect.TypeOf((*IP_ADAPTER_DNS_SUFFIX)(nil)).Elem()
   403  	types["IP_ADAPTER_GATEWAY_ADDRESS_LH"] = reflect.TypeOf((*IP_ADAPTER_GATEWAY_ADDRESS_LH)(nil)).Elem()
   404  	types["IP_ADAPTER_INDEX_MAP"] = reflect.TypeOf((*IP_ADAPTER_INDEX_MAP)(nil)).Elem()
   405  	types["IP_ADAPTER_INFO"] = reflect.TypeOf((*IP_ADAPTER_INFO)(nil)).Elem()
   406  	types["IP_ADAPTER_MULTICAST_ADDRESS_XP"] = reflect.TypeOf((*IP_ADAPTER_MULTICAST_ADDRESS_XP)(nil)).Elem()
   407  	types["IP_ADAPTER_ORDER_MAP"] = reflect.TypeOf((*IP_ADAPTER_ORDER_MAP)(nil)).Elem()
   408  	types["IP_ADAPTER_PREFIX_XP"] = reflect.TypeOf((*IP_ADAPTER_PREFIX_XP)(nil)).Elem()
   409  	types["IP_ADAPTER_UNICAST_ADDRESS_LH"] = reflect.TypeOf((*IP_ADAPTER_UNICAST_ADDRESS_LH)(nil)).Elem()
   410  	types["IP_ADAPTER_WINS_SERVER_ADDRESS_LH"] = reflect.TypeOf((*IP_ADAPTER_WINS_SERVER_ADDRESS_LH)(nil)).Elem()
   411  	types["IP_ADDRESS_STRING"] = reflect.TypeOf((*IP_ADDRESS_STRING)(nil)).Elem()
   412  	types["IP_ADDR_STRING"] = reflect.TypeOf((*IP_ADDR_STRING)(nil)).Elem()
   413  	types["IP_DAD_STATE"] = reflect.TypeOf((*IP_DAD_STATE)(nil)).Elem()
   414  	types["IP_INTERFACE_INFO"] = reflect.TypeOf((*IP_INTERFACE_INFO)(nil)).Elem()
   415  	types["IP_INTERFACE_NAME_INFO"] = reflect.TypeOf((*IP_INTERFACE_NAME_INFO)(nil)).Elem()
   416  	types["IP_INTERFACE_NAME_INFO_W2KSP1"] = reflect.TypeOf((*IP_INTERFACE_NAME_INFO_W2KSP1)(nil)).Elem()
   417  	types["IP_MASK_STRING"] = reflect.TypeOf((*IP_MASK_STRING)(nil)).Elem()
   418  	types["IP_OPTION_INFORMATION"] = reflect.TypeOf((*IP_OPTION_INFORMATION)(nil)).Elem()
   419  	types["IP_PER_ADAPTER_INFO_W2KSP1"] = reflect.TypeOf((*IP_PER_ADAPTER_INFO_W2KSP1)(nil)).Elem()
   420  	types["IP_PREFIX_ORIGIN"] = reflect.TypeOf((*IP_PREFIX_ORIGIN)(nil)).Elem()
   421  	types["IP_STATUS"] = reflect.TypeOf((*IP_STATUS)(nil)).Elem()
   422  	types["IP_SUFFIX_ORIGIN"] = reflect.TypeOf((*IP_SUFFIX_ORIGIN)(nil)).Elem()
   423  	types["IP_UNIDIRECTIONAL_ADAPTER_ADDRESS"] = reflect.TypeOf((*IP_UNIDIRECTIONAL_ADAPTER_ADDRESS)(nil)).Elem()
   424  	types["IPersistStorage"] = reflect.TypeOf((*IPersistStorage)(nil)).Elem()
   425  	types["IPersistStream"] = reflect.TypeOf((*IPersistStream)(nil)).Elem()
   426  	types["IPropertySetStorage"] = reflect.TypeOf((*IPropertySetStorage)(nil)).Elem()
   427  	types["IPropertyStorage"] = reflect.TypeOf((*IPropertyStorage)(nil)).Elem()
   428  	types["IRecordInfo"] = reflect.TypeOf((*IRecordInfo)(nil)).Elem()
   429  	types["IRpcChannelBuffer"] = reflect.TypeOf((*IRpcChannelBuffer)(nil)).Elem()
   430  	types["IRpcStubBuffer"] = reflect.TypeOf((*IRpcStubBuffer)(nil)).Elem()
   431  	types["IRunningObjectTable"] = reflect.TypeOf((*IRunningObjectTable)(nil)).Elem()
   432  	types["IShellFolder"] = reflect.TypeOf((*IShellFolder)(nil)).Elem()
   433  	types["IShellFolderViewCB"] = reflect.TypeOf((*IShellFolderViewCB)(nil)).Elem()
   434  	types["IShellItem"] = reflect.TypeOf((*IShellItem)(nil)).Elem()
   435  	types["IShellItemArray"] = reflect.TypeOf((*IShellItemArray)(nil)).Elem()
   436  	types["IShellView"] = reflect.TypeOf((*IShellView)(nil)).Elem()
   437  	types["IStorage"] = reflect.TypeOf((*IStorage)(nil)).Elem()
   438  	types["IStream"] = reflect.TypeOf((*IStream)(nil)).Elem()
   439  	types["ITEMIDLIST"] = reflect.TypeOf((*ITEMIDLIST)(nil)).Elem()
   440  	types["ITypeInfo"] = reflect.TypeOf((*ITypeInfo)(nil)).Elem()
   441  	types["ITypeLib"] = reflect.TypeOf((*ITypeLib)(nil)).Elem()
   442  	types["IUnknown"] = reflect.TypeOf((*IUnknown)(nil)).Elem()
   443  	types["I_RPC_HANDLE"] = reflect.TypeOf((*I_RPC_HANDLE)(nil)).Elem()
   444  	types["JOYCAPS"] = reflect.TypeOf((*JOYCAPS)(nil)).Elem()
   445  	types["JOYINFO"] = reflect.TypeOf((*JOYINFO)(nil)).Elem()
   446  	types["JOYINFOEX"] = reflect.TypeOf((*JOYINFOEX)(nil)).Elem()
   447  	types["KERNINGPAIR"] = reflect.TypeOf((*KERNINGPAIR)(nil)).Elem()
   448  	types["KEYBDINPUT"] = reflect.TypeOf((*KEYBDINPUT)(nil)).Elem()
   449  	types["KNOWNFOLDERID"] = reflect.TypeOf((*KNOWNFOLDERID)(nil)).Elem()
   450  	types["KNOWN_FOLDER_FLAG"] = reflect.TypeOf((*KNOWN_FOLDER_FLAG)(nil)).Elem()
   451  	types["LANGID"] = reflect.TypeOf((*LANGID)(nil)).Elem()
   452  	types["LARGE_INTEGER"] = reflect.TypeOf((*LARGE_INTEGER)(nil)).Elem()
   453  	types["LASTINPUTINFO"] = reflect.TypeOf((*LASTINPUTINFO)(nil)).Elem()
   454  	types["LAYERPLANEDESCRIPTOR"] = reflect.TypeOf((*LAYERPLANEDESCRIPTOR)(nil)).Elem()
   455  	types["LCID"] = reflect.TypeOf((*LCID)(nil)).Elem()
   456  	types["LCSCSTYPE"] = reflect.TypeOf((*LCSCSTYPE)(nil)).Elem()
   457  	types["LCSGAMUTMATCH"] = reflect.TypeOf((*LCSGAMUTMATCH)(nil)).Elem()
   458  	types["LCTYPE"] = reflect.TypeOf((*LCTYPE)(nil)).Elem()
   459  	types["LINEATTRS"] = reflect.TypeOf((*LINEATTRS)(nil)).Elem()
   460  	types["LINEDDAPROC"] = reflect.TypeOf((*LINEDDAPROC)(nil)).Elem()
   461  	types["LOGBRUSH"] = reflect.TypeOf((*LOGBRUSH)(nil)).Elem()
   462  	types["LOGCOLORSPACE"] = reflect.TypeOf((*LOGCOLORSPACE)(nil)).Elem()
   463  	types["LOGFONT"] = reflect.TypeOf((*LOGFONT)(nil)).Elem()
   464  	types["LOGPALETTE"] = reflect.TypeOf((*LOGPALETTE)(nil)).Elem()
   465  	types["LOGPEN"] = reflect.TypeOf((*LOGPEN)(nil)).Elem()
   466  	types["LONG"] = reflect.TypeOf((*LONG)(nil)).Elem()
   467  	types["LONG64"] = reflect.TypeOf((*LONG64)(nil)).Elem()
   468  	types["LONGLONG"] = reflect.TypeOf((*LONGLONG)(nil)).Elem()
   469  	types["LONG_PTR"] = reflect.TypeOf((*LONG_PTR)(nil)).Elem()
   470  	types["LPAFPROTOCOLS"] = reflect.TypeOf((*LPAFPROTOCOLS)(nil)).Elem()
   471  	types["LPARAM"] = reflect.TypeOf((*LPARAM)(nil)).Elem()
   472  	types["LPBC"] = reflect.TypeOf((*LPBC)(nil)).Elem()
   473  	types["LPBLOB"] = reflect.TypeOf((*LPBLOB)(nil)).Elem()
   474  	types["LPBROWSEINFO"] = reflect.TypeOf((*LPBROWSEINFO)(nil)).Elem()
   475  	types["LPBYTE"] = reflect.TypeOf((*LPBYTE)(nil)).Elem()
   476  	types["LPCFHOOKPROC"] = reflect.TypeOf((*LPCFHOOKPROC)(nil)).Elem()
   477  	types["LPCHOOSEFONT"] = reflect.TypeOf((*LPCHOOSEFONT)(nil)).Elem()
   478  	types["LPCITEMIDLIST"] = reflect.TypeOf((*LPCITEMIDLIST)(nil)).Elem()
   479  	types["LPCOLESTR"] = reflect.TypeOf((*LPCOLESTR)(nil)).Elem()
   480  	types["LPCONDITIONPROC"] = reflect.TypeOf((*LPCONDITIONPROC)(nil)).Elem()
   481  	types["LPCPINFO"] = reflect.TypeOf((*LPCPINFO)(nil)).Elem()
   482  	types["LPCPINFOEX"] = reflect.TypeOf((*LPCPINFOEX)(nil)).Elem()
   483  	types["LPCSADDR_INFO"] = reflect.TypeOf((*LPCSADDR_INFO)(nil)).Elem()
   484  	types["LPCSFV"] = reflect.TypeOf((*LPCSFV)(nil)).Elem()
   485  	types["LPCSTR"] = reflect.TypeOf((*LPCSTR)(nil)).Elem()
   486  	types["LPCWSTR"] = reflect.TypeOf((*LPCWSTR)(nil)).Elem()
   487  	types["LPDATAOBJECT"] = reflect.TypeOf((*LPDATAOBJECT)(nil)).Elem()
   488  	types["LPDEVMODE"] = reflect.TypeOf((*LPDEVMODE)(nil)).Elem()
   489  	types["LPDISPATCH"] = reflect.TypeOf((*LPDISPATCH)(nil)).Elem()
   490  	types["LPDROPSOURCE"] = reflect.TypeOf((*LPDROPSOURCE)(nil)).Elem()
   491  	types["LPDROPTARGET"] = reflect.TypeOf((*LPDROPTARGET)(nil)).Elem()
   492  	types["LPENUMFORMATETC"] = reflect.TypeOf((*LPENUMFORMATETC)(nil)).Elem()
   493  	types["LPENUMOLEVERB"] = reflect.TypeOf((*LPENUMOLEVERB)(nil)).Elem()
   494  	types["LPFINDREPLACE"] = reflect.TypeOf((*LPFINDREPLACE)(nil)).Elem()
   495  	types["LPFNADDPROPSHEETPAGE"] = reflect.TypeOf((*LPFNADDPROPSHEETPAGE)(nil)).Elem()
   496  	types["LPFNDFMCALLBACK"] = reflect.TypeOf((*LPFNDFMCALLBACK)(nil)).Elem()
   497  	types["LPFNVIEWCALLBACK"] = reflect.TypeOf((*LPFNVIEWCALLBACK)(nil)).Elem()
   498  	types["LPFRHOOKPROC"] = reflect.TypeOf((*LPFRHOOKPROC)(nil)).Elem()
   499  	types["LPGCP_RESULTS"] = reflect.TypeOf((*LPGCP_RESULTS)(nil)).Elem()
   500  	types["LPGUID"] = reflect.TypeOf((*LPGUID)(nil)).Elem()
   501  	types["LPHELPINFO"] = reflect.TypeOf((*LPHELPINFO)(nil)).Elem()
   502  	types["LPIMEMENUITEMINFO"] = reflect.TypeOf((*LPIMEMENUITEMINFO)(nil)).Elem()
   503  	types["LPITEMIDLIST"] = reflect.TypeOf((*LPITEMIDLIST)(nil)).Elem()
   504  	types["LPJOYCAPS"] = reflect.TypeOf((*LPJOYCAPS)(nil)).Elem()
   505  	types["LPJOYINFO"] = reflect.TypeOf((*LPJOYINFO)(nil)).Elem()
   506  	types["LPLOGCOLORSPACE"] = reflect.TypeOf((*LPLOGCOLORSPACE)(nil)).Elem()
   507  	types["LPLOGFONT"] = reflect.TypeOf((*LPLOGFONT)(nil)).Elem()
   508  	types["LPLOOKUPSERVICE_COMPLETION_ROUTINE"] = reflect.TypeOf((*LPLOOKUPSERVICE_COMPLETION_ROUTINE)(nil)).Elem()
   509  	types["LPMALLOC"] = reflect.TypeOf((*LPMALLOC)(nil)).Elem()
   510  	types["LPMALLOCSPY"] = reflect.TypeOf((*LPMALLOCSPY)(nil)).Elem()
   511  	types["LPMARSHAL"] = reflect.TypeOf((*LPMARSHAL)(nil)).Elem()
   512  	types["LPMESSAGEFILTER"] = reflect.TypeOf((*LPMESSAGEFILTER)(nil)).Elem()
   513  	types["LPMIDIOUTCAPS"] = reflect.TypeOf((*LPMIDIOUTCAPS)(nil)).Elem()
   514  	types["LPMIXERCAPS"] = reflect.TypeOf((*LPMIXERCAPS)(nil)).Elem()
   515  	types["LPMIXERCONTROL"] = reflect.TypeOf((*LPMIXERCONTROL)(nil)).Elem()
   516  	types["LPMIXERLINE"] = reflect.TypeOf((*LPMIXERLINE)(nil)).Elem()
   517  	types["LPMIXERLINECONTROLS"] = reflect.TypeOf((*LPMIXERLINECONTROLS)(nil)).Elem()
   518  	types["LPMMCKINFO"] = reflect.TypeOf((*LPMMCKINFO)(nil)).Elem()
   519  	types["LPMMIOINFO"] = reflect.TypeOf((*LPMMIOINFO)(nil)).Elem()
   520  	types["LPMONIKER"] = reflect.TypeOf((*LPMONIKER)(nil)).Elem()
   521  	types["LPOFNHOOKPROC"] = reflect.TypeOf((*LPOFNHOOKPROC)(nil)).Elem()
   522  	types["LPOLECLIENTSITE"] = reflect.TypeOf((*LPOLECLIENTSITE)(nil)).Elem()
   523  	types["LPOLEINPLACEACTIVEOBJECT"] = reflect.TypeOf((*LPOLEINPLACEACTIVEOBJECT)(nil)).Elem()
   524  	types["LPOLEINPLACEFRAME"] = reflect.TypeOf((*LPOLEINPLACEFRAME)(nil)).Elem()
   525  	types["LPOLEINPLACEFRAMEINFO"] = reflect.TypeOf((*LPOLEINPLACEFRAMEINFO)(nil)).Elem()
   526  	types["LPOLEMENUGROUPWIDTHS"] = reflect.TypeOf((*LPOLEMENUGROUPWIDTHS)(nil)).Elem()
   527  	types["LPOLEOBJECT"] = reflect.TypeOf((*LPOLEOBJECT)(nil)).Elem()
   528  	types["LPOLESTR"] = reflect.TypeOf((*LPOLESTR)(nil)).Elem()
   529  	types["LPOLESTREAM"] = reflect.TypeOf((*LPOLESTREAM)(nil)).Elem()
   530  	types["LPOPENFILENAME"] = reflect.TypeOf((*LPOPENFILENAME)(nil)).Elem()
   531  	types["LPOUTLINETEXTMETRIC"] = reflect.TypeOf((*LPOUTLINETEXTMETRIC)(nil)).Elem()
   532  	types["LPPAGEPAINTHOOK"] = reflect.TypeOf((*LPPAGEPAINTHOOK)(nil)).Elem()
   533  	types["LPPAGESETUPDLG"] = reflect.TypeOf((*LPPAGESETUPDLG)(nil)).Elem()
   534  	types["LPPAGESETUPHOOK"] = reflect.TypeOf((*LPPAGESETUPHOOK)(nil)).Elem()
   535  	types["LPPERSISTSTORAGE"] = reflect.TypeOf((*LPPERSISTSTORAGE)(nil)).Elem()
   536  	types["LPPRINTDLG"] = reflect.TypeOf((*LPPRINTDLG)(nil)).Elem()
   537  	types["LPPRINTDLGEX"] = reflect.TypeOf((*LPPRINTDLGEX)(nil)).Elem()
   538  	types["LPPRINTHOOKPROC"] = reflect.TypeOf((*LPPRINTHOOKPROC)(nil)).Elem()
   539  	types["LPPRINTPAGERANGE"] = reflect.TypeOf((*LPPRINTPAGERANGE)(nil)).Elem()
   540  	types["LPQOS"] = reflect.TypeOf((*LPQOS)(nil)).Elem()
   541  	types["LPRASTERIZER_STATUS"] = reflect.TypeOf((*LPRASTERIZER_STATUS)(nil)).Elem()
   542  	types["LPRECT"] = reflect.TypeOf((*LPRECT)(nil)).Elem()
   543  	types["LPRUNNINGOBJECTTABLE"] = reflect.TypeOf((*LPRUNNINGOBJECTTABLE)(nil)).Elem()
   544  	types["LPSAFEARRAY"] = reflect.TypeOf((*LPSAFEARRAY)(nil)).Elem()
   545  	types["LPSETUPHOOKPROC"] = reflect.TypeOf((*LPSETUPHOOKPROC)(nil)).Elem()
   546  	types["LPSHELLFLAGSTATE"] = reflect.TypeOf((*LPSHELLFLAGSTATE)(nil)).Elem()
   547  	types["LPSHELLFOLDER"] = reflect.TypeOf((*LPSHELLFOLDER)(nil)).Elem()
   548  	types["LPSHELLSTATE"] = reflect.TypeOf((*LPSHELLSTATE)(nil)).Elem()
   549  	types["LPSHFILEOPSTRUCT"] = reflect.TypeOf((*LPSHFILEOPSTRUCT)(nil)).Elem()
   550  	types["LPSHQUERYRBINFO"] = reflect.TypeOf((*LPSHQUERYRBINFO)(nil)).Elem()
   551  	types["LPSOCKADDR"] = reflect.TypeOf((*LPSOCKADDR)(nil)).Elem()
   552  	types["LPSTORAGE"] = reflect.TypeOf((*LPSTORAGE)(nil)).Elem()
   553  	types["LPSTR"] = reflect.TypeOf((*LPSTR)(nil)).Elem()
   554  	types["LPSTREAM"] = reflect.TypeOf((*LPSTREAM)(nil)).Elem()
   555  	types["LPSTYLEBUF"] = reflect.TypeOf((*LPSTYLEBUF)(nil)).Elem()
   556  	types["LPTEXTMETRIC"] = reflect.TypeOf((*LPTEXTMETRIC)(nil)).Elem()
   557  	types["LPTIMECAPS"] = reflect.TypeOf((*LPTIMECAPS)(nil)).Elem()
   558  	types["LPUNKNOWN"] = reflect.TypeOf((*LPUNKNOWN)(nil)).Elem()
   559  	types["LPVERSIONEDSTREAM"] = reflect.TypeOf((*LPVERSIONEDSTREAM)(nil)).Elem()
   560  	types["LPVOID"] = reflect.TypeOf((*LPVOID)(nil)).Elem()
   561  	types["LPWAVEHDR"] = reflect.TypeOf((*LPWAVEHDR)(nil)).Elem()
   562  	types["LPWAVEINCAPS"] = reflect.TypeOf((*LPWAVEINCAPS)(nil)).Elem()
   563  	types["LPWAVEOUTCAPS"] = reflect.TypeOf((*LPWAVEOUTCAPS)(nil)).Elem()
   564  	types["LPWPUPOSTMESSAGE"] = reflect.TypeOf((*LPWPUPOSTMESSAGE)(nil)).Elem()
   565  	types["LPWSABUF"] = reflect.TypeOf((*LPWSABUF)(nil)).Elem()
   566  	types["LPWSANAMESPACE_INFO"] = reflect.TypeOf((*LPWSANAMESPACE_INFO)(nil)).Elem()
   567  	types["LPWSANSCLASSINFO"] = reflect.TypeOf((*LPWSANSCLASSINFO)(nil)).Elem()
   568  	types["LPWSAOVERLAPPED"] = reflect.TypeOf((*LPWSAOVERLAPPED)(nil)).Elem()
   569  	types["LPWSAOVERLAPPED_COMPLETION_ROUTINE"] = reflect.TypeOf((*LPWSAOVERLAPPED_COMPLETION_ROUTINE)(nil)).Elem()
   570  	types["LPWSAPROTOCOL_INFO"] = reflect.TypeOf((*LPWSAPROTOCOL_INFO)(nil)).Elem()
   571  	types["LPWSAQUERYSET"] = reflect.TypeOf((*LPWSAQUERYSET)(nil)).Elem()
   572  	types["LPWSASERVICECLASSINFO"] = reflect.TypeOf((*LPWSASERVICECLASSINFO)(nil)).Elem()
   573  	types["LPWSAVERSION"] = reflect.TypeOf((*LPWSAVERSION)(nil)).Elem()
   574  	types["LPWSTR"] = reflect.TypeOf((*LPWSTR)(nil)).Elem()
   575  	types["LRESULT"] = reflect.TypeOf((*LRESULT)(nil)).Elem()
   576  	types["LUID"] = reflect.TypeOf((*LUID)(nil)).Elem()
   577  	types["LUID_AND_ATTRIBUTES"] = reflect.TypeOf((*LUID_AND_ATTRIBUTES)(nil)).Elem()
   578  	types["MALLOC_FREE_STRUCT"] = reflect.TypeOf((*MALLOC_FREE_STRUCT)(nil)).Elem()
   579  	types["MARGINS"] = reflect.TypeOf((*MARGINS)(nil)).Elem()
   580  	types["MAT2"] = reflect.TypeOf((*MAT2)(nil)).Elem()
   581  	types["MCIDEVICEID"] = reflect.TypeOf((*MCIDEVICEID)(nil)).Elem()
   582  	types["MCIERROR"] = reflect.TypeOf((*MCIERROR)(nil)).Elem()
   583  	types["MENUBARINFO"] = reflect.TypeOf((*MENUBARINFO)(nil)).Elem()
   584  	types["MENUINFO"] = reflect.TypeOf((*MENUINFO)(nil)).Elem()
   585  	types["MENUITEMINFO"] = reflect.TypeOf((*MENUITEMINFO)(nil)).Elem()
   586  	types["METAFILEPICT"] = reflect.TypeOf((*METAFILEPICT)(nil)).Elem()
   587  	types["METARECORD"] = reflect.TypeOf((*METARECORD)(nil)).Elem()
   588  	types["METHODDATA"] = reflect.TypeOf((*METHODDATA)(nil)).Elem()
   589  	types["MFENUMPROC"] = reflect.TypeOf((*MFENUMPROC)(nil)).Elem()
   590  	types["MIBICMPINFO"] = reflect.TypeOf((*MIBICMPINFO)(nil)).Elem()
   591  	types["MIBICMPSTATS"] = reflect.TypeOf((*MIBICMPSTATS)(nil)).Elem()
   592  	types["MIBICMPSTATS_EX"] = reflect.TypeOf((*MIBICMPSTATS_EX)(nil)).Elem()
   593  	types["MIBICMPSTATS_EX_XPSP1"] = reflect.TypeOf((*MIBICMPSTATS_EX_XPSP1)(nil)).Elem()
   594  	types["MIB_ICMP"] = reflect.TypeOf((*MIB_ICMP)(nil)).Elem()
   595  	types["MIB_ICMP_EX_XPSP1"] = reflect.TypeOf((*MIB_ICMP_EX_XPSP1)(nil)).Elem()
   596  	types["MIB_IFROW"] = reflect.TypeOf((*MIB_IFROW)(nil)).Elem()
   597  	types["MIB_IFTABLE"] = reflect.TypeOf((*MIB_IFTABLE)(nil)).Elem()
   598  	types["MIB_IF_ROW2"] = reflect.TypeOf((*MIB_IF_ROW2)(nil)).Elem()
   599  	types["MIB_IF_TABLE2"] = reflect.TypeOf((*MIB_IF_TABLE2)(nil)).Elem()
   600  	types["MIB_IPADDRROW"] = reflect.TypeOf((*MIB_IPADDRROW)(nil)).Elem()
   601  	types["MIB_IPADDRROW_XP"] = reflect.TypeOf((*MIB_IPADDRROW_XP)(nil)).Elem()
   602  	types["MIB_IPADDRTABLE"] = reflect.TypeOf((*MIB_IPADDRTABLE)(nil)).Elem()
   603  	types["MIB_IPFORWARDROW"] = reflect.TypeOf((*MIB_IPFORWARDROW)(nil)).Elem()
   604  	types["MIB_IPFORWARDTABLE"] = reflect.TypeOf((*MIB_IPFORWARDTABLE)(nil)).Elem()
   605  	types["MIB_IPFORWARD_PROTO"] = reflect.TypeOf((*MIB_IPFORWARD_PROTO)(nil)).Elem()
   606  	types["MIB_IPFORWARD_TYPE"] = reflect.TypeOf((*MIB_IPFORWARD_TYPE)(nil)).Elem()
   607  	types["MIB_IPNETROW"] = reflect.TypeOf((*MIB_IPNETROW)(nil)).Elem()
   608  	types["MIB_IPNETROW_LH"] = reflect.TypeOf((*MIB_IPNETROW_LH)(nil)).Elem()
   609  	types["MIB_IPNETTABLE"] = reflect.TypeOf((*MIB_IPNETTABLE)(nil)).Elem()
   610  	types["MIB_IPNET_TYPE"] = reflect.TypeOf((*MIB_IPNET_TYPE)(nil)).Elem()
   611  	types["MIB_IPSTATS_FORWARDING"] = reflect.TypeOf((*MIB_IPSTATS_FORWARDING)(nil)).Elem()
   612  	types["MIB_IPSTATS_LH"] = reflect.TypeOf((*MIB_IPSTATS_LH)(nil)).Elem()
   613  	types["MIB_TCP6ROW"] = reflect.TypeOf((*MIB_TCP6ROW)(nil)).Elem()
   614  	types["MIB_TCP6ROW2"] = reflect.TypeOf((*MIB_TCP6ROW2)(nil)).Elem()
   615  	types["MIB_TCP6ROW_OWNER_MODULE"] = reflect.TypeOf((*MIB_TCP6ROW_OWNER_MODULE)(nil)).Elem()
   616  	types["MIB_TCP6TABLE"] = reflect.TypeOf((*MIB_TCP6TABLE)(nil)).Elem()
   617  	types["MIB_TCP6TABLE2"] = reflect.TypeOf((*MIB_TCP6TABLE2)(nil)).Elem()
   618  	types["MIB_TCPROW"] = reflect.TypeOf((*MIB_TCPROW)(nil)).Elem()
   619  	types["MIB_TCPROW2"] = reflect.TypeOf((*MIB_TCPROW2)(nil)).Elem()
   620  	types["MIB_TCPROW_LH"] = reflect.TypeOf((*MIB_TCPROW_LH)(nil)).Elem()
   621  	types["MIB_TCPROW_OWNER_MODULE"] = reflect.TypeOf((*MIB_TCPROW_OWNER_MODULE)(nil)).Elem()
   622  	types["MIB_TCPSTATS_LH"] = reflect.TypeOf((*MIB_TCPSTATS_LH)(nil)).Elem()
   623  	types["MIB_TCPTABLE"] = reflect.TypeOf((*MIB_TCPTABLE)(nil)).Elem()
   624  	types["MIB_TCPTABLE2"] = reflect.TypeOf((*MIB_TCPTABLE2)(nil)).Elem()
   625  	types["MIB_TCP_STATE"] = reflect.TypeOf((*MIB_TCP_STATE)(nil)).Elem()
   626  	types["MIB_UDP6ROW"] = reflect.TypeOf((*MIB_UDP6ROW)(nil)).Elem()
   627  	types["MIB_UDP6ROW_OWNER_MODULE"] = reflect.TypeOf((*MIB_UDP6ROW_OWNER_MODULE)(nil)).Elem()
   628  	types["MIB_UDP6TABLE"] = reflect.TypeOf((*MIB_UDP6TABLE)(nil)).Elem()
   629  	types["MIB_UDPROW"] = reflect.TypeOf((*MIB_UDPROW)(nil)).Elem()
   630  	types["MIB_UDPROW_OWNER_MODULE"] = reflect.TypeOf((*MIB_UDPROW_OWNER_MODULE)(nil)).Elem()
   631  	types["MIB_UDPSTATS"] = reflect.TypeOf((*MIB_UDPSTATS)(nil)).Elem()
   632  	types["MIB_UDPTABLE"] = reflect.TypeOf((*MIB_UDPTABLE)(nil)).Elem()
   633  	types["MIDIHDR"] = reflect.TypeOf((*MIDIHDR)(nil)).Elem()
   634  	types["MIDIINCAPS"] = reflect.TypeOf((*MIDIINCAPS)(nil)).Elem()
   635  	types["MIDIOUTCAPS"] = reflect.TypeOf((*MIDIOUTCAPS)(nil)).Elem()
   636  	types["MIDL_STUB_DESC"] = reflect.TypeOf((*MIDL_STUB_DESC)(nil)).Elem()
   637  	types["MIDL_STUB_MESSAGE"] = reflect.TypeOf((*MIDL_STUB_MESSAGE)(nil)).Elem()
   638  	types["MIX"] = reflect.TypeOf((*MIX)(nil)).Elem()
   639  	types["MIXERCAPS"] = reflect.TypeOf((*MIXERCAPS)(nil)).Elem()
   640  	types["MIXERCONTROL"] = reflect.TypeOf((*MIXERCONTROL)(nil)).Elem()
   641  	types["MIXERCONTROLDETAILS"] = reflect.TypeOf((*MIXERCONTROLDETAILS)(nil)).Elem()
   642  	types["MIXERLINE"] = reflect.TypeOf((*MIXERLINE)(nil)).Elem()
   643  	types["MIXERLINECONTROLS"] = reflect.TypeOf((*MIXERLINECONTROLS)(nil)).Elem()
   644  	types["MMCKINFO"] = reflect.TypeOf((*MMCKINFO)(nil)).Elem()
   645  	types["MMIOINFO"] = reflect.TypeOf((*MMIOINFO)(nil)).Elem()
   646  	types["MMIOPROC"] = reflect.TypeOf((*MMIOPROC)(nil)).Elem()
   647  	types["MMRESULT"] = reflect.TypeOf((*MMRESULT)(nil)).Elem()
   648  	types["MMTIME"] = reflect.TypeOf((*MMTIME)(nil)).Elem()
   649  	types["MMVERSION"] = reflect.TypeOf((*MMVERSION)(nil)).Elem()
   650  	types["MODULEINFO"] = reflect.TypeOf((*MODULEINFO)(nil)).Elem()
   651  	types["MONITORENUMPROC"] = reflect.TypeOf((*MONITORENUMPROC)(nil)).Elem()
   652  	types["MONITORINFO"] = reflect.TypeOf((*MONITORINFO)(nil)).Elem()
   653  	types["MOUSEINPUT"] = reflect.TypeOf((*MOUSEINPUT)(nil)).Elem()
   654  	types["MOUSEMOVEPOINT"] = reflect.TypeOf((*MOUSEMOVEPOINT)(nil)).Elem()
   655  	types["MRUCMPPROC"] = reflect.TypeOf((*MRUCMPPROC)(nil)).Elem()
   656  	types["MRUINFO"] = reflect.TypeOf((*MRUINFO)(nil)).Elem()
   657  	types["MSG"] = reflect.TypeOf((*MSG)(nil)).Elem()
   658  	types["MSGBOXCALLBACK"] = reflect.TypeOf((*MSGBOXCALLBACK)(nil)).Elem()
   659  	types["MSGBOXPARAMS"] = reflect.TypeOf((*MSGBOXPARAMS)(nil)).Elem()
   660  	types["MULTIPLE_TRUSTEE_OPERATION"] = reflect.TypeOf((*MULTIPLE_TRUSTEE_OPERATION)(nil)).Elem()
   661  	types["MULTI_QI"] = reflect.TypeOf((*MULTI_QI)(nil)).Elem()
   662  	types["NDIS_MEDIUM"] = reflect.TypeOf((*NDIS_MEDIUM)(nil)).Elem()
   663  	types["NDIS_PHYSICAL_MEDIUM"] = reflect.TypeOf((*NDIS_PHYSICAL_MEDIUM)(nil)).Elem()
   664  	types["NDR_CS_ROUTINES"] = reflect.TypeOf((*NDR_CS_ROUTINES)(nil)).Elem()
   665  	types["NDR_CS_SIZE_CONVERT_ROUTINES"] = reflect.TypeOf((*NDR_CS_SIZE_CONVERT_ROUTINES)(nil)).Elem()
   666  	types["NDR_EXPR_DESC"] = reflect.TypeOf((*NDR_EXPR_DESC)(nil)).Elem()
   667  	types["NDR_RUNDOWN"] = reflect.TypeOf((*NDR_RUNDOWN)(nil)).Elem()
   668  	types["NDR_SCONTEXT"] = reflect.TypeOf((*NDR_SCONTEXT)(nil)).Elem()
   669  	types["NDR_SCONTEXT_"] = reflect.TypeOf((*NDR_SCONTEXT_)(nil)).Elem()
   670  	types["NET_ADDRESS_FORMAT"] = reflect.TypeOf((*NET_ADDRESS_FORMAT)(nil)).Elem()
   671  	types["NET_ADDRESS_INFO"] = reflect.TypeOf((*NET_ADDRESS_INFO)(nil)).Elem()
   672  	types["NET_IFINDEX"] = reflect.TypeOf((*NET_IFINDEX)(nil)).Elem()
   673  	types["NET_IF_ACCESS_TYPE"] = reflect.TypeOf((*NET_IF_ACCESS_TYPE)(nil)).Elem()
   674  	types["NET_IF_ADMIN_STATUS"] = reflect.TypeOf((*NET_IF_ADMIN_STATUS)(nil)).Elem()
   675  	types["NET_IF_COMPARTMENT_ID"] = reflect.TypeOf((*NET_IF_COMPARTMENT_ID)(nil)).Elem()
   676  	types["NET_IF_CONNECTION_TYPE"] = reflect.TypeOf((*NET_IF_CONNECTION_TYPE)(nil)).Elem()
   677  	types["NET_IF_DIRECTION_TYPE"] = reflect.TypeOf((*NET_IF_DIRECTION_TYPE)(nil)).Elem()
   678  	types["NET_IF_MEDIA_CONNECT_STATE"] = reflect.TypeOf((*NET_IF_MEDIA_CONNECT_STATE)(nil)).Elem()
   679  	types["NET_IF_NETWORK_GUID"] = reflect.TypeOf((*NET_IF_NETWORK_GUID)(nil)).Elem()
   680  	types["NET_LUID"] = reflect.TypeOf((*NET_LUID)(nil)).Elem()
   681  	types["NET_LUID_LH"] = reflect.TypeOf((*NET_LUID_LH)(nil)).Elem()
   682  	types["NL_DAD_STATE"] = reflect.TypeOf((*NL_DAD_STATE)(nil)).Elem()
   683  	types["NL_PREFIX_ORIGIN"] = reflect.TypeOf((*NL_PREFIX_ORIGIN)(nil)).Elem()
   684  	types["NL_ROUTE_PROTOCOL"] = reflect.TypeOf((*NL_ROUTE_PROTOCOL)(nil)).Elem()
   685  	types["NL_SUFFIX_ORIGIN"] = reflect.TypeOf((*NL_SUFFIX_ORIGIN)(nil)).Elem()
   686  	types["NOTIFYICONDATA"] = reflect.TypeOf((*NOTIFYICONDATA)(nil)).Elem()
   687  	types["NTSTATUS"] = reflect.TypeOf((*NTSTATUS)(nil)).Elem()
   688  	types["NUMPARSE"] = reflect.TypeOf((*NUMPARSE)(nil)).Elem()
   689  	types["OBJECTS_AND_NAME"] = reflect.TypeOf((*OBJECTS_AND_NAME)(nil)).Elem()
   690  	types["OBJECTS_AND_SID"] = reflect.TypeOf((*OBJECTS_AND_SID)(nil)).Elem()
   691  	types["OBJECT_TYPE_LIST"] = reflect.TypeOf((*OBJECT_TYPE_LIST)(nil)).Elem()
   692  	types["OCPFIPARAMS"] = reflect.TypeOf((*OCPFIPARAMS)(nil)).Elem()
   693  	types["OLECHAR"] = reflect.TypeOf((*OLECHAR)(nil)).Elem()
   694  	types["OLEINPLACEFRAMEINFO"] = reflect.TypeOf((*OLEINPLACEFRAMEINFO)(nil)).Elem()
   695  	types["OLEMENUGROUPWIDTHS"] = reflect.TypeOf((*OLEMENUGROUPWIDTHS)(nil)).Elem()
   696  	types["OLE_COLOR"] = reflect.TypeOf((*OLE_COLOR)(nil)).Elem()
   697  	types["OPENFILENAME"] = reflect.TypeOf((*OPENFILENAME)(nil)).Elem()
   698  	types["OUTLINETEXTMETRIC"] = reflect.TypeOf((*OUTLINETEXTMETRIC)(nil)).Elem()
   699  	types["OVERLAPPED"] = reflect.TypeOf((*OVERLAPPED)(nil)).Elem()
   700  	types["PADDRINFO"] = reflect.TypeOf((*PADDRINFO)(nil)).Elem()
   701  	types["PAGESETUPDLG"] = reflect.TypeOf((*PAGESETUPDLG)(nil)).Elem()
   702  	types["PAINTSTRUCT"] = reflect.TypeOf((*PAINTSTRUCT)(nil)).Elem()
   703  	types["PALETTEENTRY"] = reflect.TypeOf((*PALETTEENTRY)(nil)).Elem()
   704  	types["PANOSE"] = reflect.TypeOf((*PANOSE)(nil)).Elem()
   705  	types["PAPPBARDATA"] = reflect.TypeOf((*PAPPBARDATA)(nil)).Elem()
   706  	types["PARAMDATA"] = reflect.TypeOf((*PARAMDATA)(nil)).Elem()
   707  	types["PARRAY_INFO"] = reflect.TypeOf((*PARRAY_INFO)(nil)).Elem()
   708  	types["PARSEDURL"] = reflect.TypeOf((*PARSEDURL)(nil)).Elem()
   709  	types["PATHDATA"] = reflect.TypeOf((*PATHDATA)(nil)).Elem()
   710  	types["PATHOBJ"] = reflect.TypeOf((*PATHOBJ)(nil)).Elem()
   711  	types["PAUDIT_POLICY_INFORMATION"] = reflect.TypeOf((*PAUDIT_POLICY_INFORMATION)(nil)).Elem()
   712  	types["PBYTE"] = reflect.TypeOf((*PBYTE)(nil)).Elem()
   713  	types["PCCERT_CONTEXT"] = reflect.TypeOf((*PCCERT_CONTEXT)(nil)).Elem()
   714  	types["PCCRL_CONTEXT"] = reflect.TypeOf((*PCCRL_CONTEXT)(nil)).Elem()
   715  	types["PCCTL_CONTEXT"] = reflect.TypeOf((*PCCTL_CONTEXT)(nil)).Elem()
   716  	types["PCERT_EXTENSION"] = reflect.TypeOf((*PCERT_EXTENSION)(nil)).Elem()
   717  	types["PCERT_INFO"] = reflect.TypeOf((*PCERT_INFO)(nil)).Elem()
   718  	types["PCERT_NAME_BLOB"] = reflect.TypeOf((*PCERT_NAME_BLOB)(nil)).Elem()
   719  	types["PCERT_RDN_VALUE_BLOB"] = reflect.TypeOf((*PCERT_RDN_VALUE_BLOB)(nil)).Elem()
   720  	types["PCHAR"] = reflect.TypeOf((*PCHAR)(nil)).Elem()
   721  	types["PCIDLIST_ABSOLUTE"] = reflect.TypeOf((*PCIDLIST_ABSOLUTE)(nil)).Elem()
   722  	types["PCIDLIST_ABSOLUTE_ARRAY"] = reflect.TypeOf((*PCIDLIST_ABSOLUTE_ARRAY)(nil)).Elem()
   723  	types["PCONSOLE_SCREEN_BUFFER_INFO"] = reflect.TypeOf((*PCONSOLE_SCREEN_BUFFER_INFO)(nil)).Elem()
   724  	types["PCONSOLE_SCREEN_BUFFER_INFOEX"] = reflect.TypeOf((*PCONSOLE_SCREEN_BUFFER_INFOEX)(nil)).Elem()
   725  	types["PCRL_ENTRY"] = reflect.TypeOf((*PCRL_ENTRY)(nil)).Elem()
   726  	types["PCRL_INFO"] = reflect.TypeOf((*PCRL_INFO)(nil)).Elem()
   727  	types["PCRYPT_ATTRIBUTE"] = reflect.TypeOf((*PCRYPT_ATTRIBUTE)(nil)).Elem()
   728  	types["PCRYPT_ATTR_BLOB"] = reflect.TypeOf((*PCRYPT_ATTR_BLOB)(nil)).Elem()
   729  	types["PCRYPT_DATA_BLOB"] = reflect.TypeOf((*PCRYPT_DATA_BLOB)(nil)).Elem()
   730  	types["PCRYPT_DER_BLOB"] = reflect.TypeOf((*PCRYPT_DER_BLOB)(nil)).Elem()
   731  	types["PCRYPT_INTEGER_BLOB"] = reflect.TypeOf((*PCRYPT_INTEGER_BLOB)(nil)).Elem()
   732  	types["PCTL_ENTRY"] = reflect.TypeOf((*PCTL_ENTRY)(nil)).Elem()
   733  	types["PCTL_INFO"] = reflect.TypeOf((*PCTL_INFO)(nil)).Elem()
   734  	types["PCUITEMID_CHILD_ARRAY"] = reflect.TypeOf((*PCUITEMID_CHILD_ARRAY)(nil)).Elem()
   735  	types["PCWSTR"] = reflect.TypeOf((*PCWSTR)(nil)).Elem()
   736  	types["PCZZWSTR"] = reflect.TypeOf((*PCZZWSTR)(nil)).Elem()
   737  	types["PDH_COUNTER_INFO"] = reflect.TypeOf((*PDH_COUNTER_INFO)(nil)).Elem()
   738  	types["PDH_COUNTER_PATH_ELEMENTS"] = reflect.TypeOf((*PDH_COUNTER_PATH_ELEMENTS)(nil)).Elem()
   739  	types["PDH_DATA_ITEM_PATH_ELEMENTS"] = reflect.TypeOf((*PDH_DATA_ITEM_PATH_ELEMENTS)(nil)).Elem()
   740  	types["PDH_FMT_COUNTERVALUE"] = reflect.TypeOf((*PDH_FMT_COUNTERVALUE)(nil)).Elem()
   741  	types["PDH_HCOUNTER"] = reflect.TypeOf((*PDH_HCOUNTER)(nil)).Elem()
   742  	types["PDH_HLOG"] = reflect.TypeOf((*PDH_HLOG)(nil)).Elem()
   743  	types["PDH_HQUERY"] = reflect.TypeOf((*PDH_HQUERY)(nil)).Elem()
   744  	types["PDH_RAW_COUNTER"] = reflect.TypeOf((*PDH_RAW_COUNTER)(nil)).Elem()
   745  	types["PDH_STATUS"] = reflect.TypeOf((*PDH_STATUS)(nil)).Elem()
   746  	types["PENCRYPTION_CERTIFICATE"] = reflect.TypeOf((*PENCRYPTION_CERTIFICATE)(nil)).Elem()
   747  	types["PENG_TIME_FIELDS"] = reflect.TypeOf((*PENG_TIME_FIELDS)(nil)).Elem()
   748  	types["PENUM_PAGE_FILE_CALLBACK"] = reflect.TypeOf((*PENUM_PAGE_FILE_CALLBACK)(nil)).Elem()
   749  	types["PENUM_PAGE_FILE_INFORMATION"] = reflect.TypeOf((*PENUM_PAGE_FILE_INFORMATION)(nil)).Elem()
   750  	types["PERCEIVED"] = reflect.TypeOf((*PERCEIVED)(nil)).Elem()
   751  	types["PERFORMANCE_INFORMATION"] = reflect.TypeOf((*PERFORMANCE_INFORMATION)(nil)).Elem()
   752  	types["PERF_COUNTERSET_INSTANCE"] = reflect.TypeOf((*PERF_COUNTERSET_INSTANCE)(nil)).Elem()
   753  	types["PFADDRESSTYPE"] = reflect.TypeOf((*PFADDRESSTYPE)(nil)).Elem()
   754  	types["PFD_GLYPHATTR"] = reflect.TypeOf((*PFD_GLYPHATTR)(nil)).Elem()
   755  	types["PFFORWARD_ACTION"] = reflect.TypeOf((*PFFORWARD_ACTION)(nil)).Elem()
   756  	types["PFIXED_INFO"] = reflect.TypeOf((*PFIXED_INFO)(nil)).Elem()
   757  	types["PFLOAT_LONG"] = reflect.TypeOf((*PFLOAT_LONG)(nil)).Elem()
   758  	types["PFNCALLBACK"] = reflect.TypeOf((*PFNCALLBACK)(nil)).Elem()
   759  	types["PFORMAT_STRING"] = reflect.TypeOf((*PFORMAT_STRING)(nil)).Elem()
   760  	types["PGENERIC_BINDING_INFO"] = reflect.TypeOf((*PGENERIC_BINDING_INFO)(nil)).Elem()
   761  	types["PGLYPHPOS"] = reflect.TypeOf((*PGLYPHPOS)(nil)).Elem()
   762  	types["PHUSKEY"] = reflect.TypeOf((*PHUSKEY)(nil)).Elem()
   763  	types["PICTDESC"] = reflect.TypeOf((*PICTDESC)(nil)).Elem()
   764  	types["PIDLIST_ABSOLUTE"] = reflect.TypeOf((*PIDLIST_ABSOLUTE)(nil)).Elem()
   765  	types["PINT_PTR"] = reflect.TypeOf((*PINT_PTR)(nil)).Elem()
   766  	types["PIO_APC_ROUTINE"] = reflect.TypeOf((*PIO_APC_ROUTINE)(nil)).Elem()
   767  	types["PIO_STATUS_BLOCK"] = reflect.TypeOf((*PIO_STATUS_BLOCK)(nil)).Elem()
   768  	types["PIP_ADAPTER_ADDRESSES"] = reflect.TypeOf((*PIP_ADAPTER_ADDRESSES)(nil)).Elem()
   769  	types["PIP_ADAPTER_ANYCAST_ADDRESS_XP"] = reflect.TypeOf((*PIP_ADAPTER_ANYCAST_ADDRESS_XP)(nil)).Elem()
   770  	types["PIP_ADAPTER_DNS_SERVER_ADDRESS_XP"] = reflect.TypeOf((*PIP_ADAPTER_DNS_SERVER_ADDRESS_XP)(nil)).Elem()
   771  	types["PIP_ADAPTER_DNS_SUFFIX"] = reflect.TypeOf((*PIP_ADAPTER_DNS_SUFFIX)(nil)).Elem()
   772  	types["PIP_ADAPTER_GATEWAY_ADDRESS_LH"] = reflect.TypeOf((*PIP_ADAPTER_GATEWAY_ADDRESS_LH)(nil)).Elem()
   773  	types["PIP_ADAPTER_INDEX_MAP"] = reflect.TypeOf((*PIP_ADAPTER_INDEX_MAP)(nil)).Elem()
   774  	types["PIP_ADAPTER_INFO"] = reflect.TypeOf((*PIP_ADAPTER_INFO)(nil)).Elem()
   775  	types["PIP_ADAPTER_MULTICAST_ADDRESS_XP"] = reflect.TypeOf((*PIP_ADAPTER_MULTICAST_ADDRESS_XP)(nil)).Elem()
   776  	types["PIP_ADAPTER_ORDER_MAP"] = reflect.TypeOf((*PIP_ADAPTER_ORDER_MAP)(nil)).Elem()
   777  	types["PIP_ADAPTER_PREFIX_XP"] = reflect.TypeOf((*PIP_ADAPTER_PREFIX_XP)(nil)).Elem()
   778  	types["PIP_ADAPTER_UNICAST_ADDRESS_LH"] = reflect.TypeOf((*PIP_ADAPTER_UNICAST_ADDRESS_LH)(nil)).Elem()
   779  	types["PIP_ADAPTER_WINS_SERVER_ADDRESS_LH"] = reflect.TypeOf((*PIP_ADAPTER_WINS_SERVER_ADDRESS_LH)(nil)).Elem()
   780  	types["PIP_ADDR_STRING"] = reflect.TypeOf((*PIP_ADDR_STRING)(nil)).Elem()
   781  	types["PIP_INTERFACE_INFO"] = reflect.TypeOf((*PIP_INTERFACE_INFO)(nil)).Elem()
   782  	types["PIP_OPTION_INFORMATION"] = reflect.TypeOf((*PIP_OPTION_INFORMATION)(nil)).Elem()
   783  	types["PIP_PER_ADAPTER_INFO"] = reflect.TypeOf((*PIP_PER_ADAPTER_INFO)(nil)).Elem()
   784  	types["PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS"] = reflect.TypeOf((*PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS)(nil)).Elem()
   785  	types["PIXELFORMATDESCRIPTOR"] = reflect.TypeOf((*PIXELFORMATDESCRIPTOR)(nil)).Elem()
   786  	types["PMIB_ICMP"] = reflect.TypeOf((*PMIB_ICMP)(nil)).Elem()
   787  	types["PMIB_ICMP_EX"] = reflect.TypeOf((*PMIB_ICMP_EX)(nil)).Elem()
   788  	types["PMIB_IFROW"] = reflect.TypeOf((*PMIB_IFROW)(nil)).Elem()
   789  	types["PMIB_IFTABLE"] = reflect.TypeOf((*PMIB_IFTABLE)(nil)).Elem()
   790  	types["PMIB_IPADDRTABLE"] = reflect.TypeOf((*PMIB_IPADDRTABLE)(nil)).Elem()
   791  	types["PMIB_IPFORWARDROW"] = reflect.TypeOf((*PMIB_IPFORWARDROW)(nil)).Elem()
   792  	types["PMIB_IPFORWARDTABLE"] = reflect.TypeOf((*PMIB_IPFORWARDTABLE)(nil)).Elem()
   793  	types["PMIB_IPNETROW"] = reflect.TypeOf((*PMIB_IPNETROW)(nil)).Elem()
   794  	types["PMIB_IPNETTABLE"] = reflect.TypeOf((*PMIB_IPNETTABLE)(nil)).Elem()
   795  	types["PMIB_IPSTATS"] = reflect.TypeOf((*PMIB_IPSTATS)(nil)).Elem()
   796  	types["PMIB_TCP6ROW"] = reflect.TypeOf((*PMIB_TCP6ROW)(nil)).Elem()
   797  	types["PMIB_TCP6ROW_OWNER_MODULE"] = reflect.TypeOf((*PMIB_TCP6ROW_OWNER_MODULE)(nil)).Elem()
   798  	types["PMIB_TCP6TABLE"] = reflect.TypeOf((*PMIB_TCP6TABLE)(nil)).Elem()
   799  	types["PMIB_TCP6TABLE2"] = reflect.TypeOf((*PMIB_TCP6TABLE2)(nil)).Elem()
   800  	types["PMIB_TCPROW"] = reflect.TypeOf((*PMIB_TCPROW)(nil)).Elem()
   801  	types["PMIB_TCPROW_OWNER_MODULE"] = reflect.TypeOf((*PMIB_TCPROW_OWNER_MODULE)(nil)).Elem()
   802  	types["PMIB_TCPSTATS"] = reflect.TypeOf((*PMIB_TCPSTATS)(nil)).Elem()
   803  	types["PMIB_TCPTABLE"] = reflect.TypeOf((*PMIB_TCPTABLE)(nil)).Elem()
   804  	types["PMIB_TCPTABLE2"] = reflect.TypeOf((*PMIB_TCPTABLE2)(nil)).Elem()
   805  	types["PMIB_UDP6ROW_OWNER_MODULE"] = reflect.TypeOf((*PMIB_UDP6ROW_OWNER_MODULE)(nil)).Elem()
   806  	types["PMIB_UDP6TABLE"] = reflect.TypeOf((*PMIB_UDP6TABLE)(nil)).Elem()
   807  	types["PMIB_UDPROW_OWNER_MODULE"] = reflect.TypeOf((*PMIB_UDPROW_OWNER_MODULE)(nil)).Elem()
   808  	types["PMIB_UDPSTATS"] = reflect.TypeOf((*PMIB_UDPSTATS)(nil)).Elem()
   809  	types["PMIB_UDPTABLE"] = reflect.TypeOf((*PMIB_UDPTABLE)(nil)).Elem()
   810  	types["PMIDL_STUB_MESSAGE"] = reflect.TypeOf((*PMIDL_STUB_MESSAGE)(nil)).Elem()
   811  	types["PNET_ADDRESS_INFO"] = reflect.TypeOf((*PNET_ADDRESS_INFO)(nil)).Elem()
   812  	types["PNOTIFYICONDATA"] = reflect.TypeOf((*PNOTIFYICONDATA)(nil)).Elem()
   813  	types["POINT"] = reflect.TypeOf((*POINT)(nil)).Elem()
   814  	types["POINTFIX"] = reflect.TypeOf((*POINTFIX)(nil)).Elem()
   815  	types["POINTFLOAT"] = reflect.TypeOf((*POINTFLOAT)(nil)).Elem()
   816  	types["POINTL"] = reflect.TypeOf((*POINTL)(nil)).Elem()
   817  	types["POINTQF"] = reflect.TypeOf((*POINTQF)(nil)).Elem()
   818  	types["POINTS"] = reflect.TypeOf((*POINTS)(nil)).Elem()
   819  	types["POLICY_AUDIT_EVENT_TYPE"] = reflect.TypeOf((*POLICY_AUDIT_EVENT_TYPE)(nil)).Elem()
   820  	types["POLICY_AUDIT_SID_ARRAY"] = reflect.TypeOf((*POLICY_AUDIT_SID_ARRAY)(nil)).Elem()
   821  	types["POLYTEXT"] = reflect.TypeOf((*POLYTEXT)(nil)).Elem()
   822  	types["PPERFORMACE_INFORMATION"] = reflect.TypeOf((*PPERFORMACE_INFORMATION)(nil)).Elem()
   823  	types["PPOLICY_AUDIT_EVENT_TYPE"] = reflect.TypeOf((*PPOLICY_AUDIT_EVENT_TYPE)(nil)).Elem()
   824  	types["PPOLICY_AUDIT_SID_ARRAY"] = reflect.TypeOf((*PPOLICY_AUDIT_SID_ARRAY)(nil)).Elem()
   825  	types["PPROCESS_MEMORY_COUNTERS"] = reflect.TypeOf((*PPROCESS_MEMORY_COUNTERS)(nil)).Elem()
   826  	types["PPSAPI_WS_WATCH_INFORMATION"] = reflect.TypeOf((*PPSAPI_WS_WATCH_INFORMATION)(nil)).Elem()
   827  	types["PPSAPI_WS_WATCH_INFORMATION_EX"] = reflect.TypeOf((*PPSAPI_WS_WATCH_INFORMATION_EX)(nil)).Elem()
   828  	types["PRECTFX"] = reflect.TypeOf((*PRECTFX)(nil)).Elem()
   829  	types["PRINTDLG"] = reflect.TypeOf((*PRINTDLG)(nil)).Elem()
   830  	types["PRINTDLGEX"] = reflect.TypeOf((*PRINTDLGEX)(nil)).Elem()
   831  	types["PRINTPAGERANGE"] = reflect.TypeOf((*PRINTPAGERANGE)(nil)).Elem()
   832  	types["PRIVILEGE_SET"] = reflect.TypeOf((*PRIVILEGE_SET)(nil)).Elem()
   833  	types["PROC"] = reflect.TypeOf((*PROC)(nil)).Elem()
   834  	types["PROCESS_INFORMATION"] = reflect.TypeOf((*PROCESS_INFORMATION)(nil)).Elem()
   835  	types["PROCESS_MEMORY_COUNTERS"] = reflect.TypeOf((*PROCESS_MEMORY_COUNTERS)(nil)).Elem()
   836  	types["PROPENUMPROC"] = reflect.TypeOf((*PROPENUMPROC)(nil)).Elem()
   837  	types["PROPENUMPROCEX"] = reflect.TypeOf((*PROPENUMPROCEX)(nil)).Elem()
   838  	types["PROPERTYORIGIN"] = reflect.TypeOf((*PROPERTYORIGIN)(nil)).Elem()
   839  	types["PROPID"] = reflect.TypeOf((*PROPID)(nil)).Elem()
   840  	types["PROPSHEETCALLBACK"] = reflect.TypeOf((*PROPSHEETCALLBACK)(nil)).Elem()
   841  	types["PROPSHEETHEADER"] = reflect.TypeOf((*PROPSHEETHEADER)(nil)).Elem()
   842  	types["PROPSHEETHEADER_V2"] = reflect.TypeOf((*PROPSHEETHEADER_V2)(nil)).Elem()
   843  	types["PROPSHEETPAGE"] = reflect.TypeOf((*PROPSHEETPAGE)(nil)).Elem()
   844  	types["PROPSHEETPAGE_RESOURCE"] = reflect.TypeOf((*PROPSHEETPAGE_RESOURCE)(nil)).Elem()
   845  	types["PROPSHEETPAGE_V4"] = reflect.TypeOf((*PROPSHEETPAGE_V4)(nil)).Elem()
   846  	types["PROPSPEC"] = reflect.TypeOf((*PROPSPEC)(nil)).Elem()
   847  	types["PROPVARIANT"] = reflect.TypeOf((*PROPVARIANT)(nil)).Elem()
   848  	types["PROPVAR_CHANGE_FLAGS"] = reflect.TypeOf((*PROPVAR_CHANGE_FLAGS)(nil)).Elem()
   849  	types["PRPC_MESSAGE"] = reflect.TypeOf((*PRPC_MESSAGE)(nil)).Elem()
   850  	types["PRPC_SYNTAX_IDENTIFIER"] = reflect.TypeOf((*PRPC_SYNTAX_IDENTIFIER)(nil)).Elem()
   851  	types["PSAPI_WS_WATCH_INFORMATION"] = reflect.TypeOf((*PSAPI_WS_WATCH_INFORMATION)(nil)).Elem()
   852  	types["PSAPI_WS_WATCH_INFORMATION_EX"] = reflect.TypeOf((*PSAPI_WS_WATCH_INFORMATION_EX)(nil)).Elem()
   853  	types["PSECURE_MEMORY_CACHE_CALLBACK"] = reflect.TypeOf((*PSECURE_MEMORY_CACHE_CALLBACK)(nil)).Elem()
   854  	types["PSECURITY_DESCRIPTOR"] = reflect.TypeOf((*PSECURITY_DESCRIPTOR)(nil)).Elem()
   855  	types["PSID"] = reflect.TypeOf((*PSID)(nil)).Elem()
   856  	types["PSOCKADDR_IN6"] = reflect.TypeOf((*PSOCKADDR_IN6)(nil)).Elem()
   857  	types["PSOCKADDR_IN6_PAIR"] = reflect.TypeOf((*PSOCKADDR_IN6_PAIR)(nil)).Elem()
   858  	types["PSPCALLBACK"] = reflect.TypeOf((*PSPCALLBACK)(nil)).Elem()
   859  	types["PSRWLOCK"] = reflect.TypeOf((*PSRWLOCK)(nil)).Elem()
   860  	types["PSTR"] = reflect.TypeOf((*PSTR)(nil)).Elem()
   861  	types["PTRIVERTEX"] = reflect.TypeOf((*PTRIVERTEX)(nil)).Elem()
   862  	types["PUCHAR"] = reflect.TypeOf((*PUCHAR)(nil)).Elem()
   863  	types["PULONG64"] = reflect.TypeOf((*PULONG64)(nil)).Elem()
   864  	types["PUSHORT"] = reflect.TypeOf((*PUSHORT)(nil)).Elem()
   865  	types["PVOID"] = reflect.TypeOf((*PVOID)(nil)).Elem()
   866  	types["PWCHAR"] = reflect.TypeOf((*PWCHAR)(nil)).Elem()
   867  	types["PWSTR"] = reflect.TypeOf((*PWSTR)(nil)).Elem()
   868  	types["QITAB"] = reflect.TypeOf((*QITAB)(nil)).Elem()
   869  	types["QOS"] = reflect.TypeOf((*QOS)(nil)).Elem()
   870  	types["QUERY_USER_NOTIFICATION_STATE"] = reflect.TypeOf((*QUERY_USER_NOTIFICATION_STATE)(nil)).Elem()
   871  	types["RASTERIZER_STATUS"] = reflect.TypeOf((*RASTERIZER_STATUS)(nil)).Elem()
   872  	types["RAWHID"] = reflect.TypeOf((*RAWHID)(nil)).Elem()
   873  	types["RAWINPUT"] = reflect.TypeOf((*RAWINPUT)(nil)).Elem()
   874  	types["RAWINPUTDEVICE"] = reflect.TypeOf((*RAWINPUTDEVICE)(nil)).Elem()
   875  	types["RAWINPUTDEVICELIST"] = reflect.TypeOf((*RAWINPUTDEVICELIST)(nil)).Elem()
   876  	types["RAWINPUTHEADER"] = reflect.TypeOf((*RAWINPUTHEADER)(nil)).Elem()
   877  	types["RAWKEYBOARD"] = reflect.TypeOf((*RAWKEYBOARD)(nil)).Elem()
   878  	types["RAWMOUSE"] = reflect.TypeOf((*RAWMOUSE)(nil)).Elem()
   879  	types["RECT"] = reflect.TypeOf((*RECT)(nil)).Elem()
   880  	types["RECTFX"] = reflect.TypeOf((*RECTFX)(nil)).Elem()
   881  	types["RECTL"] = reflect.TypeOf((*RECTL)(nil)).Elem()
   882  	types["REFCLSID"] = reflect.TypeOf((*REFCLSID)(nil)).Elem()
   883  	types["REFFMTID"] = reflect.TypeOf((*REFFMTID)(nil)).Elem()
   884  	types["REFGUID"] = reflect.TypeOf((*REFGUID)(nil)).Elem()
   885  	types["REFIID"] = reflect.TypeOf((*REFIID)(nil)).Elem()
   886  	types["REFKNOWNFOLDERID"] = reflect.TypeOf((*REFKNOWNFOLDERID)(nil)).Elem()
   887  	types["REFPROPVARIANT"] = reflect.TypeOf((*REFPROPVARIANT)(nil)).Elem()
   888  	types["REGISTERWORDENUMPROC"] = reflect.TypeOf((*REGISTERWORDENUMPROC)(nil)).Elem()
   889  	types["REGKIND"] = reflect.TypeOf((*REGKIND)(nil)).Elem()
   890  	types["REGSAM"] = reflect.TypeOf((*REGSAM)(nil)).Elem()
   891  	types["RESTRICTIONS"] = reflect.TypeOf((*RESTRICTIONS)(nil)).Elem()
   892  	types["RGBQUAD"] = reflect.TypeOf((*RGBQUAD)(nil)).Elem()
   893  	types["RGNDATA"] = reflect.TypeOf((*RGNDATA)(nil)).Elem()
   894  	types["RGNDATAHEADER"] = reflect.TypeOf((*RGNDATAHEADER)(nil)).Elem()
   895  	types["ROP4"] = reflect.TypeOf((*ROP4)(nil)).Elem()
   896  	types["RPC_AUTHZ_HANDLE"] = reflect.TypeOf((*RPC_AUTHZ_HANDLE)(nil)).Elem()
   897  	types["RPC_BINDING_HANDLE"] = reflect.TypeOf((*RPC_BINDING_HANDLE)(nil)).Elem()
   898  	types["RPC_MESSAGE"] = reflect.TypeOf((*RPC_MESSAGE)(nil)).Elem()
   899  	types["RPC_STATUS"] = reflect.TypeOf((*RPC_STATUS)(nil)).Elem()
   900  	types["RPC_SYNTAX_IDENTIFIER"] = reflect.TypeOf((*RPC_SYNTAX_IDENTIFIER)(nil)).Elem()
   901  	types["RPC_VERSION"] = reflect.TypeOf((*RPC_VERSION)(nil)).Elem()
   902  	types["RTL_SRWLOCK"] = reflect.TypeOf((*RTL_SRWLOCK)(nil)).Elem()
   903  	types["RUN"] = reflect.TypeOf((*RUN)(nil)).Elem()
   904  	types["SAFEARRAY"] = reflect.TypeOf((*SAFEARRAY)(nil)).Elem()
   905  	types["SAFEARRAYBOUND"] = reflect.TypeOf((*SAFEARRAYBOUND)(nil)).Elem()
   906  	types["SAFER_LEVEL_HANDLE"] = reflect.TypeOf((*SAFER_LEVEL_HANDLE)(nil)).Elem()
   907  	types["SCODE"] = reflect.TypeOf((*SCODE)(nil)).Elem()
   908  	types["SCOPE_ID"] = reflect.TypeOf((*SCOPE_ID)(nil)).Elem()
   909  	types["SCROLLBARINFO"] = reflect.TypeOf((*SCROLLBARINFO)(nil)).Elem()
   910  	types["SCROLLINFO"] = reflect.TypeOf((*SCROLLINFO)(nil)).Elem()
   911  	types["SC_HANDLE"] = reflect.TypeOf((*SC_HANDLE)(nil)).Elem()
   912  	types["SC_LOCK"] = reflect.TypeOf((*SC_LOCK)(nil)).Elem()
   913  	types["SECURITY_ATTRIBUTES"] = reflect.TypeOf((*SECURITY_ATTRIBUTES)(nil)).Elem()
   914  	types["SECURITY_CONTEXT_TRACKING_MODE"] = reflect.TypeOf((*SECURITY_CONTEXT_TRACKING_MODE)(nil)).Elem()
   915  	types["SECURITY_DESCRIPTOR"] = reflect.TypeOf((*SECURITY_DESCRIPTOR)(nil)).Elem()
   916  	types["SECURITY_DESCRIPTOR_CONTROL"] = reflect.TypeOf((*SECURITY_DESCRIPTOR_CONTROL)(nil)).Elem()
   917  	types["SECURITY_IMPERSONATION_LEVEL"] = reflect.TypeOf((*SECURITY_IMPERSONATION_LEVEL)(nil)).Elem()
   918  	types["SECURITY_INFORMATION"] = reflect.TypeOf((*SECURITY_INFORMATION)(nil)).Elem()
   919  	types["SECURITY_QUALITY_OF_SERVICE"] = reflect.TypeOf((*SECURITY_QUALITY_OF_SERVICE)(nil)).Elem()
   920  	types["SENDASYNCPROC"] = reflect.TypeOf((*SENDASYNCPROC)(nil)).Elem()
   921  	types["SERVICETYPE"] = reflect.TypeOf((*SERVICETYPE)(nil)).Elem()
   922  	types["SERVICE_STATUS"] = reflect.TypeOf((*SERVICE_STATUS)(nil)).Elem()
   923  	types["SERVICE_STATUS_HANDLE"] = reflect.TypeOf((*SERVICE_STATUS_HANDLE)(nil)).Elem()
   924  	types["SE_OBJECT_TYPE"] = reflect.TypeOf((*SE_OBJECT_TYPE)(nil)).Elem()
   925  	types["SFGAOF"] = reflect.TypeOf((*SFGAOF)(nil)).Elem()
   926  	types["SFV_CREATE"] = reflect.TypeOf((*SFV_CREATE)(nil)).Elem()
   927  	types["SHChangeNotifyEntry"] = reflect.TypeOf((*SHChangeNotifyEntry)(nil)).Elem()
   928  	types["SHELLFLAGSTATE"] = reflect.TypeOf((*SHELLFLAGSTATE)(nil)).Elem()
   929  	types["SHELLSTATE"] = reflect.TypeOf((*SHELLSTATE)(nil)).Elem()
   930  	types["SHFILEINFO"] = reflect.TypeOf((*SHFILEINFO)(nil)).Elem()
   931  	types["SHFILEOPSTRUCT"] = reflect.TypeOf((*SHFILEOPSTRUCT)(nil)).Elem()
   932  	types["SHITEMID"] = reflect.TypeOf((*SHITEMID)(nil)).Elem()
   933  	types["SHORT"] = reflect.TypeOf((*SHORT)(nil)).Elem()
   934  	types["SHQUERYRBINFO"] = reflect.TypeOf((*SHQUERYRBINFO)(nil)).Elem()
   935  	types["SHREGDEL_FLAGS"] = reflect.TypeOf((*SHREGDEL_FLAGS)(nil)).Elem()
   936  	types["SHREGENUM_FLAGS"] = reflect.TypeOf((*SHREGENUM_FLAGS)(nil)).Elem()
   937  	types["SHSTOCKICONID"] = reflect.TypeOf((*SHSTOCKICONID)(nil)).Elem()
   938  	types["SHSTOCKICONINFO"] = reflect.TypeOf((*SHSTOCKICONINFO)(nil)).Elem()
   939  	types["SID"] = reflect.TypeOf((*SID)(nil)).Elem()
   940  	types["SID_AND_ATTRIBUTES"] = reflect.TypeOf((*SID_AND_ATTRIBUTES)(nil)).Elem()
   941  	types["SID_IDENTIFIER_AUTHORITY"] = reflect.TypeOf((*SID_IDENTIFIER_AUTHORITY)(nil)).Elem()
   942  	types["SIGDN"] = reflect.TypeOf((*SIGDN)(nil)).Elem()
   943  	types["SIZE"] = reflect.TypeOf((*SIZE)(nil)).Elem()
   944  	types["SIZEL"] = reflect.TypeOf((*SIZEL)(nil)).Elem()
   945  	types["SIZE_T"] = reflect.TypeOf((*SIZE_T)(nil)).Elem()
   946  	types["SMALL_RECT"] = reflect.TypeOf((*SMALL_RECT)(nil)).Elem()
   947  	types["SOCKADDR"] = reflect.TypeOf((*SOCKADDR)(nil)).Elem()
   948  	types["SOCKADDR_IN"] = reflect.TypeOf((*SOCKADDR_IN)(nil)).Elem()
   949  	types["SOCKADDR_IN6"] = reflect.TypeOf((*SOCKADDR_IN6)(nil)).Elem()
   950  	types["SOCKADDR_IN6_LH"] = reflect.TypeOf((*SOCKADDR_IN6_LH)(nil)).Elem()
   951  	types["SOCKADDR_IN6_PAIR"] = reflect.TypeOf((*SOCKADDR_IN6_PAIR)(nil)).Elem()
   952  	types["SOCKET"] = reflect.TypeOf((*SOCKET)(nil)).Elem()
   953  	types["SOCKET_ADDRESS"] = reflect.TypeOf((*SOCKET_ADDRESS)(nil)).Elem()
   954  	types["SOLE_AUTHENTICATION_SERVICE"] = reflect.TypeOf((*SOLE_AUTHENTICATION_SERVICE)(nil)).Elem()
   955  	types["STARTUPINFO"] = reflect.TypeOf((*STARTUPINFO)(nil)).Elem()
   956  	types["STGMEDIUM"] = reflect.TypeOf((*STGMEDIUM)(nil)).Elem()
   957  	types["STROBJ"] = reflect.TypeOf((*STROBJ)(nil)).Elem()
   958  	types["STRRET"] = reflect.TypeOf((*STRRET)(nil)).Elem()
   959  	types["STYLEBUF"] = reflect.TypeOf((*STYLEBUF)(nil)).Elem()
   960  	types["SUBCLASSPROC"] = reflect.TypeOf((*SUBCLASSPROC)(nil)).Elem()
   961  	types["SURFOBJ"] = reflect.TypeOf((*SURFOBJ)(nil)).Elem()
   962  	types["SYSKIND"] = reflect.TypeOf((*SYSKIND)(nil)).Elem()
   963  	types["SYSTEMTIME"] = reflect.TypeOf((*SYSTEMTIME)(nil)).Elem()
   964  	types["SYSTEM_INFO"] = reflect.TypeOf((*SYSTEM_INFO)(nil)).Elem()
   965  	types["Sockaddr"] = reflect.TypeOf((*Sockaddr)(nil)).Elem()
   966  	types["Socklen_t"] = reflect.TypeOf((*Socklen_t)(nil)).Elem()
   967  	types["Status"] = reflect.TypeOf((*Status)(nil)).Elem()
   968  	types["TASKCALLBACK"] = reflect.TypeOf((*TASKCALLBACK)(nil)).Elem()
   969  	types["TASKDIALOGCALLBACK"] = reflect.TypeOf((*TASKDIALOGCALLBACK)(nil)).Elem()
   970  	types["TASKDIALOGCONFIG"] = reflect.TypeOf((*TASKDIALOGCONFIG)(nil)).Elem()
   971  	types["TASKDIALOG_BUTTON"] = reflect.TypeOf((*TASKDIALOG_BUTTON)(nil)).Elem()
   972  	types["TASKDIALOG_COMMON_BUTTON_FLAGS"] = reflect.TypeOf((*TASKDIALOG_COMMON_BUTTON_FLAGS)(nil)).Elem()
   973  	types["TASKDIALOG_FLAGS"] = reflect.TypeOf((*TASKDIALOG_FLAGS)(nil)).Elem()
   974  	types["TBBUTTON"] = reflect.TypeOf((*TBBUTTON)(nil)).Elem()
   975  	types["TCPIP_OWNER_MODULE_INFO_CLASS"] = reflect.TypeOf((*TCPIP_OWNER_MODULE_INFO_CLASS)(nil)).Elem()
   976  	types["TCP_CONNECTION_OFFLOAD_STATE"] = reflect.TypeOf((*TCP_CONNECTION_OFFLOAD_STATE)(nil)).Elem()
   977  	types["TCP_ESTATS_TYPE"] = reflect.TypeOf((*TCP_ESTATS_TYPE)(nil)).Elem()
   978  	types["TCP_RTO_ALGORITHM"] = reflect.TypeOf((*TCP_RTO_ALGORITHM)(nil)).Elem()
   979  	types["TCP_TABLE_CLASS"] = reflect.TypeOf((*TCP_TABLE_CLASS)(nil)).Elem()
   980  	types["TEXTMETRIC"] = reflect.TypeOf((*TEXTMETRIC)(nil)).Elem()
   981  	types["THEMESIZE"] = reflect.TypeOf((*THEMESIZE)(nil)).Elem()
   982  	types["THREAD_START_ROUTINE"] = reflect.TypeOf((*THREAD_START_ROUTINE)(nil)).Elem()
   983  	types["TIMECALLBACK"] = reflect.TypeOf((*TIMECALLBACK)(nil)).Elem()
   984  	types["TIMECAPS"] = reflect.TypeOf((*TIMECAPS)(nil)).Elem()
   985  	types["TIMERPROC"] = reflect.TypeOf((*TIMERPROC)(nil)).Elem()
   986  	types["TITLEBARINFO"] = reflect.TypeOf((*TITLEBARINFO)(nil)).Elem()
   987  	types["TOKEN_GROUPS"] = reflect.TypeOf((*TOKEN_GROUPS)(nil)).Elem()
   988  	types["TOKEN_PRIVILEGES"] = reflect.TypeOf((*TOKEN_PRIVILEGES)(nil)).Elem()
   989  	types["TOUCHINPUT"] = reflect.TypeOf((*TOUCHINPUT)(nil)).Elem()
   990  	types["TPMPARAMS"] = reflect.TypeOf((*TPMPARAMS)(nil)).Elem()
   991  	types["TRACKMOUSEEVENT"] = reflect.TypeOf((*TRACKMOUSEEVENT)(nil)).Elem()
   992  	types["TRIVERTEX"] = reflect.TypeOf((*TRIVERTEX)(nil)).Elem()
   993  	types["TRUSTEE"] = reflect.TypeOf((*TRUSTEE)(nil)).Elem()
   994  	types["TRUSTEE_FORM"] = reflect.TypeOf((*TRUSTEE_FORM)(nil)).Elem()
   995  	types["TRUSTEE_TYPE"] = reflect.TypeOf((*TRUSTEE_TYPE)(nil)).Elem()
   996  	types["TUNNEL_TYPE"] = reflect.TypeOf((*TUNNEL_TYPE)(nil)).Elem()
   997  	types["Time_t"] = reflect.TypeOf((*Time_t)(nil)).Elem()
   998  	types["Timeval"] = reflect.TypeOf((*Timeval)(nil)).Elem()
   999  	types["UCHAR"] = reflect.TypeOf((*UCHAR)(nil)).Elem()
  1000  	types["UDATE"] = reflect.TypeOf((*UDATE)(nil)).Elem()
  1001  	types["UDP_TABLE_CLASS"] = reflect.TypeOf((*UDP_TABLE_CLASS)(nil)).Elem()
  1002  	types["UINT"] = reflect.TypeOf((*UINT)(nil)).Elem()
  1003  	types["UINT8"] = reflect.TypeOf((*UINT8)(nil)).Elem()
  1004  	types["UINT_PTR"] = reflect.TypeOf((*UINT_PTR)(nil)).Elem()
  1005  	types["ULARGE_INTEGER"] = reflect.TypeOf((*ULARGE_INTEGER)(nil)).Elem()
  1006  	types["ULONG"] = reflect.TypeOf((*ULONG)(nil)).Elem()
  1007  	types["ULONG64"] = reflect.TypeOf((*ULONG64)(nil)).Elem()
  1008  	types["ULONGLONG"] = reflect.TypeOf((*ULONGLONG)(nil)).Elem()
  1009  	types["ULONG_PTR"] = reflect.TypeOf((*ULONG_PTR)(nil)).Elem()
  1010  	types["UPDATELAYEREDWINDOWINFO"] = reflect.TypeOf((*UPDATELAYEREDWINDOWINFO)(nil)).Elem()
  1011  	types["URLIS"] = reflect.TypeOf((*URLIS)(nil)).Elem()
  1012  	types["USER_MARSHAL_FREEING_ROUTINE"] = reflect.TypeOf((*USER_MARSHAL_FREEING_ROUTINE)(nil)).Elem()
  1013  	types["USER_MARSHAL_MARSHALLING_ROUTINE"] = reflect.TypeOf((*USER_MARSHAL_MARSHALLING_ROUTINE)(nil)).Elem()
  1014  	types["USER_MARSHAL_ROUTINE_QUADRUPLE"] = reflect.TypeOf((*USER_MARSHAL_ROUTINE_QUADRUPLE)(nil)).Elem()
  1015  	types["USER_MARSHAL_SIZING_ROUTINE"] = reflect.TypeOf((*USER_MARSHAL_SIZING_ROUTINE)(nil)).Elem()
  1016  	types["USER_MARSHAL_UNMARSHALLING_ROUTINE"] = reflect.TypeOf((*USER_MARSHAL_UNMARSHALLING_ROUTINE)(nil)).Elem()
  1017  	types["USHORT"] = reflect.TypeOf((*USHORT)(nil)).Elem()
  1018  	types["VARIANT"] = reflect.TypeOf((*VARIANT)(nil)).Elem()
  1019  	types["VARIANTARG"] = reflect.TypeOf((*VARIANTARG)(nil)).Elem()
  1020  	types["VARIANT_BOOL"] = reflect.TypeOf((*VARIANT_BOOL)(nil)).Elem()
  1021  	types["VARTYPE"] = reflect.TypeOf((*VARTYPE)(nil)).Elem()
  1022  	types["VERSIONEDSTREAM"] = reflect.TypeOf((*VERSIONEDSTREAM)(nil)).Elem()
  1023  	types["WAVEFORMATEX"] = reflect.TypeOf((*WAVEFORMATEX)(nil)).Elem()
  1024  	types["WAVEHDR"] = reflect.TypeOf((*WAVEHDR)(nil)).Elem()
  1025  	types["WAVEINCAPS"] = reflect.TypeOf((*WAVEINCAPS)(nil)).Elem()
  1026  	types["WAVEOUTCAPS"] = reflect.TypeOf((*WAVEOUTCAPS)(nil)).Elem()
  1027  	types["WCHAR"] = reflect.TypeOf((*WCHAR)(nil)).Elem()
  1028  	types["WCRANGE"] = reflect.TypeOf((*WCRANGE)(nil)).Elem()
  1029  	types["WGLSWAP"] = reflect.TypeOf((*WGLSWAP)(nil)).Elem()
  1030  	types["WINDOWINFO"] = reflect.TypeOf((*WINDOWINFO)(nil)).Elem()
  1031  	types["WINDOWPLACEMENT"] = reflect.TypeOf((*WINDOWPLACEMENT)(nil)).Elem()
  1032  	types["WINEVENTPROC"] = reflect.TypeOf((*WINEVENTPROC)(nil)).Elem()
  1033  	types["WINSTAENUMPROC"] = reflect.TypeOf((*WINSTAENUMPROC)(nil)).Elem()
  1034  	types["WNDCLASS"] = reflect.TypeOf((*WNDCLASS)(nil)).Elem()
  1035  	types["WNDCLASSEX"] = reflect.TypeOf((*WNDCLASSEX)(nil)).Elem()
  1036  	types["WNDENUMPROC"] = reflect.TypeOf((*WNDENUMPROC)(nil)).Elem()
  1037  	types["WNDPROC"] = reflect.TypeOf((*WNDPROC)(nil)).Elem()
  1038  	types["WORD"] = reflect.TypeOf((*WORD)(nil)).Elem()
  1039  	types["WPARAM"] = reflect.TypeOf((*WPARAM)(nil)).Elem()
  1040  	types["WSABUF"] = reflect.TypeOf((*WSABUF)(nil)).Elem()
  1041  	types["WSACOMPLETION"] = reflect.TypeOf((*WSACOMPLETION)(nil)).Elem()
  1042  	types["WSACOMPLETIONTYPE"] = reflect.TypeOf((*WSACOMPLETIONTYPE)(nil)).Elem()
  1043  	types["WSADATA"] = reflect.TypeOf((*WSADATA)(nil)).Elem()
  1044  	types["WSAECOMPARATOR"] = reflect.TypeOf((*WSAECOMPARATOR)(nil)).Elem()
  1045  	types["WSAESETSERVICEOP"] = reflect.TypeOf((*WSAESETSERVICEOP)(nil)).Elem()
  1046  	types["WSAEVENT"] = reflect.TypeOf((*WSAEVENT)(nil)).Elem()
  1047  	types["WSAMSG"] = reflect.TypeOf((*WSAMSG)(nil)).Elem()
  1048  	types["WSANAMESPACE_INFO"] = reflect.TypeOf((*WSANAMESPACE_INFO)(nil)).Elem()
  1049  	types["WSANETWORKEVENTS"] = reflect.TypeOf((*WSANETWORKEVENTS)(nil)).Elem()
  1050  	types["WSANSCLASSINFO"] = reflect.TypeOf((*WSANSCLASSINFO)(nil)).Elem()
  1051  	types["WSAPOLLFD"] = reflect.TypeOf((*WSAPOLLFD)(nil)).Elem()
  1052  	types["WSAPROTOCOLCHAIN"] = reflect.TypeOf((*WSAPROTOCOLCHAIN)(nil)).Elem()
  1053  	types["WSAPROTOCOL_INFO"] = reflect.TypeOf((*WSAPROTOCOL_INFO)(nil)).Elem()
  1054  	types["WSAQUERYSET"] = reflect.TypeOf((*WSAQUERYSET)(nil)).Elem()
  1055  	types["WSASERVICECLASSINFO"] = reflect.TypeOf((*WSASERVICECLASSINFO)(nil)).Elem()
  1056  	types["WSAVERSION"] = reflect.TypeOf((*WSAVERSION)(nil)).Elem()
  1057  	types["XFORM"] = reflect.TypeOf((*XFORM)(nil)).Elem()
  1058  	types["XFORML"] = reflect.TypeOf((*XFORML)(nil)).Elem()
  1059  	types["XFORMOBJ"] = reflect.TypeOf((*XFORMOBJ)(nil)).Elem()
  1060  	types["XLATEOBJ"] = reflect.TypeOf((*XLATEOBJ)(nil)).Elem()
  1061  	types["XLAT_SIDE"] = reflect.TypeOf((*XLAT_SIDE)(nil)).Elem()
  1062  	types["XMIT_HELPER_ROUTINE"] = reflect.TypeOf((*XMIT_HELPER_ROUTINE)(nil)).Elem()
  1063  	types["XMIT_ROUTINE_QUINTUPLE"] = reflect.TypeOf((*XMIT_ROUTINE_QUINTUPLE)(nil)).Elem()
  1064  	types["YIELDPROC"] = reflect.TypeOf((*YIELDPROC)(nil)).Elem()
  1065  	types["bool"] = reflect.TypeOf((*bool)(nil)).Elem()
  1066  	types["byte"] = reflect.TypeOf((*byte)(nil)).Elem()
  1067  	types["float32"] = reflect.TypeOf((*float32)(nil)).Elem()
  1068  	types["float64"] = reflect.TypeOf((*float64)(nil)).Elem()
  1069  	types["int"] = reflect.TypeOf((*int)(nil)).Elem()
  1070  	types["int16"] = reflect.TypeOf((*int16)(nil)).Elem()
  1071  	types["int32"] = reflect.TypeOf((*int32)(nil)).Elem()
  1072  	types["int8"] = reflect.TypeOf((*int8)(nil)).Elem()
  1073  	types["string"] = reflect.TypeOf((*string)(nil)).Elem()
  1074  	types["uint16"] = reflect.TypeOf((*uint16)(nil)).Elem()
  1075  	types["uint32"] = reflect.TypeOf((*uint32)(nil)).Elem()
  1076  	types["uintptr"] = reflect.TypeOf((*uintptr)(nil)).Elem()
  1077  }
  1078  
  1079  type ABC struct {
  1080  	AbcA int32
  1081  	AbcB UINT
  1082  	AbcC int32
  1083  }
  1084  type ABCFLOAT struct {
  1085  	AbcfA FLOAT
  1086  	AbcfB FLOAT
  1087  	AbcfC FLOAT
  1088  }
  1089  type ABORTPROC func(unnamed0 HDC, unnamed1 int32) BOOL
  1090  type ACCEL struct {
  1091  	FVirt BYTE
  1092  	Key   WORD
  1093  	Cmd   WORD
  1094  }
  1095  type ACCESS_MASK uint32
  1096  type ACL struct {
  1097  	AclRevision byte
  1098  	Sbz1        byte
  1099  	AclSize     uint16
  1100  	AceCount    uint16
  1101  	Sbz2        uint16
  1102  }
  1103  type ADDRINFO struct {
  1104  	Ai_flags     int32
  1105  	Ai_family    int32
  1106  	Ai_socktype  int32
  1107  	Ai_protocol  int32
  1108  	Ai_addrlen   SIZE_T
  1109  	Ai_canonname PWSTR
  1110  	Ai_addr      uintptr // struct sockaddr *
  1111  	Ai_next      *ADDRINFO
  1112  }
  1113  type ADDRINFOEX struct {
  1114  	Ai_flags     int32
  1115  	Ai_family    int32
  1116  	Ai_socktype  int32
  1117  	Ai_protocol  int32
  1118  	Ai_addrlen   SIZE_T
  1119  	Ai_canonname PWSTR
  1120  	Ai_addr      uintptr // struct sockaddr*
  1121  	Ai_blob      LPVOID
  1122  	Ai_bloblen   SIZE_T
  1123  	Ai_provider  LPGUID
  1124  	Ai_next      *ADDRINFOEX
  1125  }
  1126  type AFPROTOCOLS struct {
  1127  	IAddressFamily INT
  1128  	IProtocol      INT
  1129  }
  1130  type ALG_ID uint32
  1131  type ALTTABINFO struct {
  1132  	CbSize    uint32
  1133  	CItems    int32
  1134  	CColumns  int32
  1135  	CRows     int32
  1136  	IColFocus int32
  1137  	IRowFocus int32
  1138  	CxItem    int32
  1139  	CyItem    int32
  1140  	PtStart   POINT
  1141  }
  1142  type APPBARDATA struct {
  1143  	CbSize           DWORD
  1144  	HWnd             HWND
  1145  	UCallbackMessage UINT
  1146  	UEdge            UINT
  1147  	Rc               RECT
  1148  	LParam           LPARAM
  1149  }
  1150  type ARRAY_INFO struct {
  1151  	Dimension             int32
  1152  	BufferConformanceMark *uint32
  1153  	BufferVarianceMark    *uint32
  1154  	MaxCountArray         *uint32
  1155  	OffsetArray           *uint32
  1156  	ActualCountArray      *uint32
  1157  }
  1158  type ATOM uint16
  1159  type AUDIT_POLICY_INFORMATION struct {
  1160  	AuditSubCategoryGuid GUID
  1161  	AuditingInformation  ULONG
  1162  	AuditCategoryGuid    GUID
  1163  }
  1164  type AUTO_SCROLL_DATA struct {
  1165  	INextSample  int32
  1166  	DwLastScroll DWORD
  1167  	BFull        BOOL
  1168  	Pts          [NUM_POINTS]POINT
  1169  	DwTimes      [NUM_POINTS]DWORD
  1170  }
  1171  type AUXCAPS struct {
  1172  	WMid           WORD
  1173  	WPid           WORD
  1174  	VDriverVersion MMVERSION
  1175  	SzPname        [MAXPNAMELEN]WCHAR
  1176  	WTechnology    WORD
  1177  	WReserved1     WORD
  1178  	DwSupport      DWORD
  1179  }
  1180  type BFFCALLBACK func(hwnd HWND, uMsg UINT, lParam LPARAM, lpData LPARAM) int32
  1181  type BIND_OPTS struct {
  1182  	CbStruct            DWORD
  1183  	GrfFlags            DWORD
  1184  	GrfMode             DWORD
  1185  	DwTickCountDeadline DWORD
  1186  }
  1187  type BITMAP struct {
  1188  	BmType       LONG
  1189  	BmWidth      LONG
  1190  	BmHeight     LONG
  1191  	BmWidthBytes LONG
  1192  	BmPlanes     WORD
  1193  	BmBitsPixel  WORD
  1194  	BmBits       LPVOID
  1195  }
  1196  type BITMAPINFO struct {
  1197  	BmiHeader BITMAPINFOHEADER
  1198  	BmiColors [1]RGBQUAD
  1199  }
  1200  type BITMAPINFOHEADER struct {
  1201  	BiSize          DWORD
  1202  	BiWidth         LONG
  1203  	BiHeight        LONG
  1204  	BiPlanes        WORD
  1205  	BiBitCount      WORD
  1206  	BiCompression   DWORD
  1207  	BiSizeImage     DWORD
  1208  	BiXPelsPerMeter LONG
  1209  	BiYPelsPerMeter LONG
  1210  	BiClrUsed       DWORD
  1211  	BiClrImportant  DWORD
  1212  }
  1213  type BLENDFUNCTION struct {
  1214  	BlendOp             byte
  1215  	BlendFlags          byte
  1216  	SourceConstantAlpha byte
  1217  	AlphaFormat         byte
  1218  }
  1219  
  1220  func getUintptrFromBLENDFUNCTION(v BLENDFUNCTION) uintptr {
  1221  	ret := (uint32(v.BlendOp) << 12) | (uint32(v.BlendFlags) << 8) | (uint32(v.SourceConstantAlpha) << 4) | uint32(v.AlphaFormat)
  1222  	return uintptr(ret)
  1223  }
  1224  
  1225  type BLENDOBJ struct {
  1226  	BlendFunction BLENDFUNCTION
  1227  }
  1228  type BLOB struct {
  1229  	CbSize    ULONG
  1230  	PBlobData *BYTE
  1231  }
  1232  type BOOLEAN byte
  1233  type BP_ANIMATIONPARAMS struct {
  1234  	CbSize     DWORD
  1235  	DwFlags    DWORD
  1236  	Style      BP_ANIMATIONSTYLE
  1237  	DwDuration DWORD
  1238  }
  1239  type BP_PAINTPARAMS struct {
  1240  	CbSize  DWORD
  1241  	DwFlags DWORD
  1242  	PrcExclude/*const*/ *RECT
  1243  	PBlendFunction/*const*/ *BLENDFUNCTION
  1244  }
  1245  type BROWSEINFO struct {
  1246  	HwndOwner      HWND
  1247  	PidlRoot       PCIDLIST_ABSOLUTE
  1248  	PszDisplayName LPWSTR
  1249  	LpszTitle      LPCWSTR
  1250  	UlFlags        UINT
  1251  	Lpfn           uintptr // BFFCALLBACK
  1252  	LParam         LPARAM
  1253  	IImage         int32
  1254  }
  1255  type BRUSHOBJ struct {
  1256  	ISolidColor ULONG
  1257  	PvRbrush    PVOID
  1258  	FlColorType FLONG
  1259  }
  1260  type BSMINFO struct {
  1261  	CbSize uint32
  1262  	Hdesk  HDESK
  1263  	Hwnd   HWND
  1264  	Luid   LUID
  1265  }
  1266  type BSTR *OLECHAR
  1267  type BSTRBLOB struct {
  1268  	CbSize ULONG
  1269  	PData  *BYTE
  1270  }
  1271  type BYTE byte
  1272  type CABINETSTATE struct {
  1273  	CLength         WORD
  1274  	NVersion        WORD
  1275  	flags1          uint16
  1276  	FMenuEnumFilter UINT
  1277  }
  1278  
  1279  func (this *CABINETSTATE) FFullPathTitle() BOOL {
  1280  	return (BOOL)(0x1 & (this.flags1 >> 15))
  1281  }
  1282  func (this *CABINETSTATE) FSaveLocalView() BOOL {
  1283  	return (BOOL)(0x1 & (this.flags1 >> 14))
  1284  }
  1285  func (this *CABINETSTATE) FNotShell() BOOL {
  1286  	return (BOOL)(0x1 & (this.flags1 >> 13))
  1287  }
  1288  func (this *CABINETSTATE) FSimpleDefault() BOOL {
  1289  	return (BOOL)(0x1 & (this.flags1 >> 12))
  1290  }
  1291  func (this *CABINETSTATE) FDontShowDescBar() BOOL {
  1292  	return (BOOL)(0x1 & (this.flags1 >> 11))
  1293  }
  1294  func (this *CABINETSTATE) FNewWindowMode() BOOL {
  1295  	return (BOOL)(0x1 & (this.flags1 >> 10))
  1296  }
  1297  func (this *CABINETSTATE) FShowCompColor() BOOL {
  1298  	return (BOOL)(0x1 & (this.flags1 >> 9))
  1299  }
  1300  func (this *CABINETSTATE) FDontPrettyNames() BOOL {
  1301  	return (BOOL)(0x1 & (this.flags1 >> 8))
  1302  }
  1303  func (this *CABINETSTATE) FAdminsCreateCommonGroups() BOOL {
  1304  	return (BOOL)(0x1 & (this.flags1 >> 7))
  1305  }
  1306  
  1307  type CABOOL struct {
  1308  	CElems ULONG
  1309  	PElems *VARIANT_BOOL
  1310  }
  1311  type CABSTR struct {
  1312  	CElems ULONG
  1313  	PElems *BSTR
  1314  }
  1315  type CABSTRBLOB struct {
  1316  	CElems ULONG
  1317  	PElems *BSTRBLOB
  1318  }
  1319  type CAC struct {
  1320  	CElems ULONG
  1321  	PElems *CHAR
  1322  }
  1323  type CACLIPDATA struct {
  1324  	CElems ULONG
  1325  	PElems *CLIPDATA
  1326  }
  1327  type CACLSID struct {
  1328  	CElems ULONG
  1329  	PElems *CLSID
  1330  }
  1331  type CACY struct {
  1332  	CElems ULONG
  1333  	PElems *CY
  1334  }
  1335  type CADATE struct {
  1336  	CElems ULONG
  1337  	PElems *DATE
  1338  }
  1339  type CADBL struct {
  1340  	CElems ULONG
  1341  	PElems *DOUBLE
  1342  }
  1343  type CAFILETIME struct {
  1344  	CElems ULONG
  1345  	PElems *FILETIME
  1346  }
  1347  type CAFLT struct {
  1348  	CElems ULONG
  1349  	PElems *FLOAT
  1350  }
  1351  type CAH struct {
  1352  	CElems ULONG
  1353  	PElems *LARGE_INTEGER
  1354  }
  1355  type CAI struct {
  1356  	CElems ULONG
  1357  	PElems *SHORT
  1358  }
  1359  type CAL struct {
  1360  	CElems ULONG
  1361  	PElems *LONG
  1362  }
  1363  type CALID uint32
  1364  type CALPSTR struct {
  1365  	CElems ULONG
  1366  	PElems *LPSTR
  1367  }
  1368  type CALPWSTR struct {
  1369  	CElems ULONG
  1370  	PElems *LPWSTR
  1371  }
  1372  type CALTYPE DWORD
  1373  type CANDIDATEFORM struct {
  1374  	DwIndex      DWORD
  1375  	DwStyle      DWORD
  1376  	PtCurrentPos POINT
  1377  	RcArea       RECT
  1378  }
  1379  type CANDIDATELIST struct {
  1380  	DwSize      DWORD
  1381  	DwStyle     DWORD
  1382  	DwCount     DWORD
  1383  	DwSelection DWORD
  1384  	DwPageStart DWORD
  1385  	DwPageSize  DWORD
  1386  	DwOffset    [1]DWORD
  1387  }
  1388  type CAPROPVARIANT struct {
  1389  	CElems ULONG
  1390  	PElems *PROPVARIANT
  1391  }
  1392  type CASCODE struct {
  1393  	CElems ULONG
  1394  	PElems *SCODE
  1395  }
  1396  type CAUB struct {
  1397  	CElems ULONG
  1398  	PElems *UCHAR
  1399  }
  1400  type CAUH struct {
  1401  	CElems ULONG
  1402  	PElems *ULARGE_INTEGER
  1403  }
  1404  type CAUI struct {
  1405  	CElems ULONG
  1406  	PElems *USHORT
  1407  }
  1408  type CAUL struct {
  1409  	CElems ULONG
  1410  	PElems *ULONG
  1411  }
  1412  type CCHOOKPROC func(unnamed0 HWND, unnamed1 UINT, unnamed2 WPARAM, unnamed3 LPARAM) UINT_PTR
  1413  type CERT_CONTEXT struct {
  1414  	DwCertEncodingType DWORD
  1415  	PbCertEncoded      *BYTE
  1416  	CbCertEncoded      DWORD
  1417  	PCertInfo          PCERT_INFO
  1418  	HCertStore         HCERTSTORE
  1419  }
  1420  type CERT_EXTENSION struct {
  1421  	PszObjId  LPSTR
  1422  	FCritical BOOL
  1423  	Value     CRYPT_OBJID_BLOB
  1424  }
  1425  type CERT_INFO struct {
  1426  	DwVersion            DWORD
  1427  	SerialNumber         CRYPT_INTEGER_BLOB
  1428  	SignatureAlgorithm   CRYPT_ALGORITHM_IDENTIFIER
  1429  	Issuer               CERT_NAME_BLOB
  1430  	NotBefore            FILETIME
  1431  	NotAfter             FILETIME
  1432  	Subject              CERT_NAME_BLOB
  1433  	SubjectPublicKeyInfo CERT_PUBLIC_KEY_INFO
  1434  	IssuerUniqueId       CRYPT_BIT_BLOB
  1435  	SubjectUniqueId      CRYPT_BIT_BLOB
  1436  	CExtension           DWORD
  1437  	RgExtension          PCERT_EXTENSION
  1438  }
  1439  type CERT_NAME_BLOB CRYPTOAPI_BLOB_
  1440  type CERT_PUBLIC_KEY_INFO struct {
  1441  	Algorithm CRYPT_ALGORITHM_IDENTIFIER
  1442  	PublicKey CRYPT_BIT_BLOB
  1443  }
  1444  type CERT_RDN_VALUE_BLOB CRYPTOAPI_BLOB_
  1445  type CHAR byte
  1446  type CHARSETINFO struct {
  1447  	CiCharset UINT
  1448  	CiACP     UINT
  1449  	Fs        FONTSIGNATURE
  1450  }
  1451  type CHOOSECOLOR struct {
  1452  	LStructSize    DWORD
  1453  	HwndOwner      HWND
  1454  	HInstance      HWND
  1455  	RgbResult      COLORREF
  1456  	LpCustColors   *COLORREF
  1457  	Flags          DWORD
  1458  	LCustData      LPARAM
  1459  	LpfnHook       uintptr // LPCCHOOKPROC
  1460  	LpTemplateName LPCWSTR
  1461  }
  1462  type CHOOSEFONT struct {
  1463  	LStructSize            DWORD
  1464  	HwndOwner              HWND
  1465  	HDC                    HDC
  1466  	LpLogFont              LPLOGFONT
  1467  	IPointSize             INT
  1468  	Flags                  DWORD
  1469  	RgbColors              COLORREF
  1470  	LCustData              LPARAM
  1471  	LpfnHook               uintptr // LPCFHOOKPROC
  1472  	LpTemplateName         LPCWSTR
  1473  	HInstance              HINSTANCE
  1474  	LpszStyle              LPWSTR
  1475  	NFontType              WORD
  1476  	___MISSING_ALIGNMENT__ WORD
  1477  	NSizeMin               INT
  1478  	NSizeMax               INT
  1479  }
  1480  type CIEXYZ struct {
  1481  	CiexyzX FXPT2DOT30
  1482  	CiexyzY FXPT2DOT30
  1483  	CiexyzZ FXPT2DOT30
  1484  }
  1485  type CIEXYZTRIPLE struct {
  1486  	CiexyzRed   CIEXYZ
  1487  	CiexyzGreen CIEXYZ
  1488  	CiexyzBlue  CIEXYZ
  1489  }
  1490  type CLIPDATA struct {
  1491  	CbSize    ULONG
  1492  	UlClipFmt LONG
  1493  	PClipData *BYTE
  1494  }
  1495  type CLIPFORMAT WORD
  1496  type CLIPLINE struct {
  1497  	PtfxA       POINTFIX
  1498  	PtfxB       POINTFIX
  1499  	LStyleState LONG
  1500  	C           ULONG
  1501  	Arun        [1]RUN
  1502  }
  1503  type CLIPOBJ struct {
  1504  	IUniq        ULONG
  1505  	RclBounds    RECTL
  1506  	IDComplexity BYTE
  1507  	IFComplexity BYTE
  1508  	IMode        BYTE
  1509  	FjOptions    BYTE
  1510  }
  1511  type CLSID GUID
  1512  type COAUTHIDENTITY struct {
  1513  	User           *USHORT
  1514  	UserLength     ULONG
  1515  	Domain         *USHORT
  1516  	DomainLength   ULONG
  1517  	Password       *USHORT
  1518  	PasswordLength ULONG
  1519  	Flags          ULONG
  1520  }
  1521  type COAUTHINFO struct {
  1522  	DwAuthnSvc           DWORD
  1523  	DwAuthzSvc           DWORD
  1524  	PwszServerPrincName  LPWSTR
  1525  	DwAuthnLevel         DWORD
  1526  	DwImpersonationLevel DWORD
  1527  	PAuthIdentityData    *COAUTHIDENTITY
  1528  	DwCapabilities       DWORD
  1529  }
  1530  type COLOR16 USHORT
  1531  type COLORADJUSTMENT struct {
  1532  	CaSize            WORD
  1533  	CaFlags           WORD
  1534  	CaIlluminantIndex WORD
  1535  	CaRedGamma        WORD
  1536  	CaGreenGamma      WORD
  1537  	CaBlueGamma       WORD
  1538  	CaReferenceBlack  WORD
  1539  	CaReferenceWhite  WORD
  1540  	CaContrast        SHORT
  1541  	CaBrightness      SHORT
  1542  	CaColorfulness    SHORT
  1543  	CaRedGreenTint    SHORT
  1544  }
  1545  type COLORMAP struct {
  1546  	From COLORREF
  1547  	To   COLORREF
  1548  }
  1549  type COLORREF uint32
  1550  type COMBOBOXINFO struct {
  1551  	CbSize      uint32
  1552  	RcItem      RECT
  1553  	RcButton    RECT
  1554  	StateButton uint32
  1555  	HwndCombo   HWND
  1556  	HwndItem    HWND
  1557  	HwndList    HWND
  1558  }
  1559  type COMM_FAULT_OFFSETS struct {
  1560  	CommOffset  int16
  1561  	FaultOffset int16
  1562  }
  1563  type COMPOSITIONFORM struct {
  1564  	DwStyle      DWORD
  1565  	PtCurrentPos POINT
  1566  	RcArea       RECT
  1567  }
  1568  type CONSOLE_SCREEN_BUFFER_INFO struct {
  1569  	DwSize              COORD
  1570  	DwCursorPosition    COORD
  1571  	WAttributes         WORD
  1572  	SrWindow            SMALL_RECT
  1573  	DwMaximumWindowSize COORD
  1574  }
  1575  type CONSOLE_SCREEN_BUFFER_INFOEX struct {
  1576  	CbSize               ULONG
  1577  	DwSize               COORD
  1578  	DwCursorPosition     COORD
  1579  	WAttributes          WORD
  1580  	SrWindow             SMALL_RECT
  1581  	DwMaximumWindowSize  COORD
  1582  	WPopupAttributes     WORD
  1583  	BFullscreenSupported BOOL
  1584  	ColorTable           [16]COLORREF
  1585  }
  1586  type CONVCONTEXT struct {
  1587  	Cb         uint32
  1588  	WFlags     uint32
  1589  	WCountryID uint32
  1590  	ICodePage  int32
  1591  	DwLangID   uint32
  1592  	DwSecurity uint32
  1593  	Qos        SECURITY_QUALITY_OF_SERVICE
  1594  }
  1595  type CONVINFO struct {
  1596  	Cb            uint32
  1597  	HUser         *uint32 // DWORD_PTR
  1598  	HConvPartner  HCONV
  1599  	HszSvcPartner HSZ
  1600  	HszServiceReq HSZ
  1601  	HszTopic      HSZ
  1602  	HszItem       HSZ
  1603  	WFmt          uint32 // UINT
  1604  	WType         uint32 // UINT
  1605  	WStatus       uint32 // UINT
  1606  	WConvst       uint32 // UINT
  1607  	WLastError    uint32 // UINT
  1608  	HConvList     HCONVLIST
  1609  	ConvCtxt      CONVCONTEXT
  1610  	Hwnd          HWND
  1611  	HwndPartner   HWND
  1612  }
  1613  type COORD struct {
  1614  	X int16
  1615  	Y int16
  1616  }
  1617  
  1618  func getCOORDFromUintptr(v uintptr) COORD {
  1619  	var ret COORD
  1620  	u32 := uint32(v)
  1621  	ret.X = *(*int16)(unsafe.Pointer(&u32))
  1622  	ret.Y = *(*int16)(unsafe.Pointer(uintptr(unsafe.Pointer(&u32)) + uintptr(2)))
  1623  	return ret
  1624  }
  1625  func getUintptrFromCOORD(c COORD) uintptr {
  1626  	var ret uintptr
  1627  	xPtr := (*int16)(unsafe.Pointer(&ret))
  1628  	*xPtr = c.X
  1629  	yPtr := (*int16)(unsafe.Pointer(uintptr(unsafe.Pointer(&ret)) + uintptr(2)))
  1630  	*yPtr = c.Y
  1631  	return ret
  1632  }
  1633  
  1634  type COSERVERINFO struct {
  1635  	DwReserved1 DWORD
  1636  	PwszName    LPWSTR
  1637  	PAuthInfo   *COAUTHINFO
  1638  	DwReserved2 DWORD
  1639  }
  1640  type CPINFO struct {
  1641  	MaxCharSize UINT
  1642  	DefaultChar [MAX_DEFAULTCHAR]BYTE
  1643  	LeadByte    [MAX_LEADBYTES]BYTE
  1644  }
  1645  type CPINFOEX struct {
  1646  	MaxCharSize        UINT
  1647  	DefaultChar        [MAX_DEFAULTCHAR]BYTE
  1648  	LeadByte           [MAX_LEADBYTES]BYTE
  1649  	UnicodeDefaultChar WCHAR
  1650  	CodePage           UINT
  1651  	CodePageName       [MAX_PATH]WCHAR
  1652  }
  1653  type CREDENTIAL struct {
  1654  	Flags              uint32
  1655  	Type               uint32
  1656  	TargetName         LPWSTR
  1657  	Comment            LPWSTR
  1658  	LastWritten        FILETIME
  1659  	CredentialBlobSize uint32
  1660  	CredentialBlob     *byte
  1661  	Persist            uint32
  1662  	AttributeCount     uint32
  1663  	Attributes         *CREDENTIAL_ATTRIBUTE
  1664  	TargetAlias        LPWSTR
  1665  	UserName           LPWSTR
  1666  }
  1667  type CREDENTIAL_ATTRIBUTE struct {
  1668  	Keyword   LPWSTR
  1669  	Flags     uint32
  1670  	ValueSize uint32
  1671  	Value     *byte
  1672  }
  1673  type CRL_CONTEXT struct {
  1674  	DwCertEncodingType DWORD
  1675  	PbCrlEncoded       *BYTE
  1676  	CbCrlEncoded       DWORD
  1677  	PCrlInfo           PCRL_INFO
  1678  	HCertStore         HCERTSTORE
  1679  }
  1680  type CRL_ENTRY struct {
  1681  	SerialNumber   CRYPT_INTEGER_BLOB
  1682  	RevocationDate FILETIME
  1683  	CExtension     DWORD
  1684  	RgExtension    PCERT_EXTENSION
  1685  }
  1686  type CRL_INFO struct {
  1687  	DwVersion          DWORD
  1688  	SignatureAlgorithm CRYPT_ALGORITHM_IDENTIFIER
  1689  	Issuer             CERT_NAME_BLOB
  1690  	ThisUpdate         FILETIME
  1691  	NextUpdate         FILETIME
  1692  	CCRLEntry          DWORD
  1693  	RgCRLEntry         PCRL_ENTRY
  1694  	CExtension         DWORD
  1695  	RgExtension        PCERT_EXTENSION
  1696  }
  1697  type CRYPTOAPI_BLOB_ struct {
  1698  	CbData DWORD
  1699  	PbData *BYTE
  1700  }
  1701  type CRYPT_ALGORITHM_IDENTIFIER struct {
  1702  	PszObjId   LPSTR
  1703  	Parameters CRYPT_OBJID_BLOB
  1704  }
  1705  type CRYPT_ATTRIBUTE struct {
  1706  	PszObjId LPSTR
  1707  	CValue   DWORD
  1708  	RgValue  PCRYPT_ATTR_BLOB
  1709  }
  1710  type CRYPT_ATTR_BLOB CRYPTOAPI_BLOB_
  1711  type CRYPT_BIT_BLOB struct {
  1712  	CbData      DWORD
  1713  	PbData      *BYTE
  1714  	CUnusedBits DWORD
  1715  }
  1716  type CRYPT_DATA_BLOB CRYPTOAPI_BLOB_
  1717  type CRYPT_DER_BLOB CRYPTOAPI_BLOB_
  1718  type CRYPT_HASH_BLOB CRYPTOAPI_BLOB_
  1719  type CRYPT_INTEGER_BLOB CRYPTOAPI_BLOB_
  1720  type CRYPT_OBJID_BLOB CRYPTOAPI_BLOB_
  1721  type CSADDR_INFO struct {
  1722  	LocalAddr   SOCKET_ADDRESS
  1723  	RemoteAddr  SOCKET_ADDRESS
  1724  	ISocketType INT
  1725  	IProtocol   INT
  1726  }
  1727  type CSFV struct {
  1728  	CbSize      UINT
  1729  	Pshf        *IShellFolder
  1730  	PsvOuter    *IShellView
  1731  	Pidl        PCIDLIST_ABSOLUTE
  1732  	LEvents     LONG
  1733  	PfnCallback LPFNVIEWCALLBACK
  1734  	Fvm         FOLDERVIEWMODE
  1735  }
  1736  type CS_TAG_GETTING_ROUTINE func(hBinding RPC_BINDING_HANDLE, fServerSide int32, pulSendingTag *uint32, pulDesiredReceivingTag *uint32, pulReceivingTag *uint32, pStatus *Error_status_t)
  1737  type CS_TYPE_FROM_NETCS_ROUTINE func(hBinding RPC_BINDING_HANDLE, ulNetworkCodeSet uint32, pNetworkData *byte, ulNetworkDataLength uint32, ulLocalBufferSize uint32, pLocalData uintptr, pulLocalDataLength *uint32, pStatus *Error_status_t)
  1738  type CS_TYPE_LOCAL_SIZE_ROUTINE func(hBinding RPC_BINDING_HANDLE, ulNetworkCodeSet uint32, ulNetworkBufferSize uint32, conversionType *IDL_CS_CONVERT, pulLocalBufferSize *uint32, pStatus *Error_status_t)
  1739  type CS_TYPE_NET_SIZE_ROUTINE func(hBinding RPC_BINDING_HANDLE, ulNetworkCodeSet uint32, ulLocalBufferSize uint32, conversionType *IDL_CS_CONVERT, pulNetworkBufferSize *uint32, pStatus *Error_status_t)
  1740  type CS_TYPE_TO_NETCS_ROUTINE func(hBinding RPC_BINDING_HANDLE, ulNetworkCodeSet uint32, pLocalData uintptr, ulLocalDataLength uint32, pNetworkData *byte, pulNetworkDataLength *uint32, pStatus *Error_status_t)
  1741  type CTL_CONTEXT struct {
  1742  	DwMsgAndCertEncodingType DWORD
  1743  	PbCtlEncoded             *BYTE
  1744  	CbCtlEncoded             DWORD
  1745  	PCtlInfo                 PCTL_INFO
  1746  	HCertStore               HCERTSTORE
  1747  	HCryptMsg                HCRYPTMSG
  1748  	PbCtlContent             *BYTE
  1749  	CbCtlContent             DWORD
  1750  }
  1751  type CTL_ENTRY struct {
  1752  	SubjectIdentifier CRYPT_DATA_BLOB
  1753  	CAttribute        DWORD
  1754  	RgAttribute       PCRYPT_ATTRIBUTE
  1755  }
  1756  type CTL_INFO struct {
  1757  	DwVersion        DWORD
  1758  	SubjectUsage     CTL_USAGE
  1759  	ListIdentifier   CRYPT_DATA_BLOB
  1760  	SequenceNumber   CRYPT_INTEGER_BLOB
  1761  	ThisUpdate       FILETIME
  1762  	NextUpdate       FILETIME
  1763  	SubjectAlgorithm CRYPT_ALGORITHM_IDENTIFIER
  1764  	CCTLEntry        DWORD
  1765  	RgCTLEntry       PCTL_ENTRY
  1766  	CExtension       DWORD
  1767  	RgExtension      PCERT_EXTENSION
  1768  }
  1769  type CTL_USAGE struct {
  1770  	CUsageIdentifier     DWORD
  1771  	RgpszUsageIdentifier *LPSTR
  1772  }
  1773  type CURSORINFO struct {
  1774  	CbSize      uint32
  1775  	Flags       uint32
  1776  	HCursor     HCURSOR
  1777  	PtScreenPos POINT
  1778  }
  1779  type CUSTDATA struct {
  1780  	CCustData   DWORD
  1781  	PrgCustData *CUSTDATAITEM
  1782  }
  1783  type CUSTDATAITEM struct {
  1784  	Guid     GUID
  1785  	VarValue VARIANTARG
  1786  }
  1787  type CY struct {
  1788  	union1 [8]byte
  1789  }
  1790  
  1791  func (this *CY) GetLo() uint32 {
  1792  	return *(*uint32)(unsafe.Pointer(&this.union1[0]))
  1793  }
  1794  func (this *CY) SetLo(v uint32) {
  1795  	*(*uint32)(unsafe.Pointer(&this.union1[0])) = v
  1796  }
  1797  func (this *CY) GetHi() int32 {
  1798  	return *(*int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&this.union1[0])) + uintptr(4)))
  1799  }
  1800  func (this *CY) SetHi(v int32) {
  1801  	*(*int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&this.union1[0])) + uintptr(4))) = v
  1802  }
  1803  func (this *CY) GetInt64() int64 {
  1804  	return *(*int64)(unsafe.Pointer(&this.union1[0]))
  1805  }
  1806  func (this *CY) SetInt64(v int64) {
  1807  	*(*int64)(unsafe.Pointer(&this.union1[0])) = v
  1808  }
  1809  
  1810  type DACOMPARE func(p1 uintptr, p2 uintptr, lParam LPARAM) int32
  1811  type DAENUMCALLBACK func(p uintptr, pData uintptr) int32
  1812  type DATE float64
  1813  type DATETIME struct {
  1814  	Year  uint16 // WORD
  1815  	Month uint16 // WORD
  1816  	Day   uint16 // WORD
  1817  	Hour  uint16 // WORD
  1818  	Min   uint16 // WORD
  1819  	Sec   uint16 // WORD
  1820  }
  1821  type DECIMAL struct {
  1822  	WReserved USHORT
  1823  	union1    [2]byte
  1824  	Hi32      ULONG
  1825  	union2    [8]byte
  1826  }
  1827  
  1828  func (this *DECIMAL) Scale() *BYTE {
  1829  	return (*BYTE)(unsafe.Pointer(&this.union1[0]))
  1830  }
  1831  func (this *DECIMAL) Sign() *BYTE {
  1832  	return (*BYTE)(unsafe.Pointer(&this.union1[1]))
  1833  }
  1834  func (this *DECIMAL) Signscale() *USHORT {
  1835  	return (*USHORT)(unsafe.Pointer(&this.union1[0]))
  1836  }
  1837  func (this *DECIMAL) Lo32() *ULONG {
  1838  	return (*ULONG)(unsafe.Pointer(&this.union2[0]))
  1839  }
  1840  func (this *DECIMAL) Mid32() *ULONG {
  1841  	return (*ULONG)(unsafe.Pointer(&this.union2[4]))
  1842  }
  1843  func (this *DECIMAL) Lo64() *ULONGLONG {
  1844  	return (*ULONGLONG)(unsafe.Pointer(&this.union2[0]))
  1845  }
  1846  
  1847  type DEFCONTEXTMENU struct {
  1848  	Hwnd                HWND
  1849  	Pcmcb               *IContextMenuCB
  1850  	PidlFolder          PCIDLIST_ABSOLUTE
  1851  	Psf                 *IShellFolder
  1852  	Cidl                UINT
  1853  	Apidl               PCUITEMID_CHILD_ARRAY
  1854  	PunkAssociationInfo *IUnknown
  1855  	CKeys               UINT
  1856  	AKeys/*const*/ *HKEY
  1857  }
  1858  type DESIGNVECTOR struct {
  1859  	DvReserved DWORD
  1860  	DvNumAxes  DWORD
  1861  	DvValues   [MM_MAX_NUMAXES]LONG
  1862  }
  1863  type DESKTOPENUMPROC func(lpszDesktop LPWSTR, lParam LPARAM) BOOL
  1864  type DEVMODE struct {
  1865  	DmDeviceName       [CCHDEVICENAME]uint16
  1866  	DmSpecVersion      uint16
  1867  	DmDriverVersion    uint16
  1868  	DmSize             uint16
  1869  	DmDriverExtra      uint16
  1870  	DmFields           uint32
  1871  	DmOrientation      int16
  1872  	DmPaperSize        int16
  1873  	DmPaperLength      int16
  1874  	DmPaperWidth       int16
  1875  	DmScale            int16
  1876  	DmCopies           int16
  1877  	DmDefaultSource    int16
  1878  	DmPrintQuality     int16
  1879  	DmColor            int16
  1880  	DmDuplex           int16
  1881  	DmYResolution      int16
  1882  	DmTTOption         int16
  1883  	DmCollate          int16
  1884  	DmFormName         [CCHFORMNAME]uint16
  1885  	DmLogPixels        uint16
  1886  	DmBitsPerPel       uint32
  1887  	DmPelsWidth        uint32
  1888  	DmPelsHeight       uint32
  1889  	DmDisplayFlags     uint32
  1890  	DmDisplayFrequency uint32
  1891  	DmICMMethod        uint32
  1892  	DmICMIntent        uint32
  1893  	DmMediaType        uint32
  1894  	DmDitherType       uint32
  1895  	DmReserved1        uint32
  1896  	DmReserved2        uint32
  1897  	DmPanningWidth     uint32
  1898  	DmPanningHeight    uint32
  1899  }
  1900  type DHPDEV HANDLE
  1901  type DHSURF HANDLE
  1902  type DISPID LONG
  1903  type DISPLAY_DEVICE struct {
  1904  	Cb           uint32
  1905  	DeviceName   [32]uint16
  1906  	DeviceString [128]uint16
  1907  	StateFlags   uint32
  1908  	DeviceID     [128]uint16
  1909  	DeviceKey    [128]uint16
  1910  }
  1911  type DISPPARAMS struct {
  1912  	Rgvarg            *VARIANTARG
  1913  	RgdispidNamedArgs *DISPID
  1914  	CArgs             UINT
  1915  	CNamedArgs        UINT
  1916  }
  1917  type DLGPROC func(hwndDlg HWND, uMsg uint32, wParam WPARAM, lParam LPARAM) int32
  1918  type DLGTEMPLATE struct {
  1919  	storage [18]byte
  1920  }
  1921  
  1922  func (this *DLGTEMPLATE) Style() *uint32 {
  1923  	return (*uint32)(unsafe.Pointer(&this.storage[0]))
  1924  }
  1925  func (this *DLGTEMPLATE) DwExtendedStyle() *uint32 {
  1926  	return (*uint32)(unsafe.Pointer(&this.storage[4]))
  1927  }
  1928  func (this *DLGTEMPLATE) Cdit() *uint16 {
  1929  	return (*uint16)(unsafe.Pointer(&this.storage[8]))
  1930  }
  1931  func (this *DLGTEMPLATE) X() *int16 {
  1932  	return (*int16)(unsafe.Pointer(&this.storage[10]))
  1933  }
  1934  func (this *DLGTEMPLATE) Y() *int16 {
  1935  	return (*int16)(unsafe.Pointer(&this.storage[12]))
  1936  }
  1937  func (this *DLGTEMPLATE) Cx() *int16 {
  1938  	return (*int16)(unsafe.Pointer(&this.storage[14]))
  1939  }
  1940  func (this *DLGTEMPLATE) Cy() *int16 {
  1941  	return (*int16)(unsafe.Pointer(&this.storage[16]))
  1942  }
  1943  
  1944  type DOCINFO struct {
  1945  	CbSize       int32
  1946  	LpszDocName  LPCWSTR
  1947  	LpszOutput   LPCWSTR
  1948  	LpszDatatype LPCWSTR
  1949  	FwType       DWORD
  1950  }
  1951  type DOUBLE float64
  1952  type DRAWSTATEPROC func(hdc HDC, lData uintptr, wData uintptr, cx int32, cy int32) BOOL
  1953  type DRAWTEXTPARAMS struct {
  1954  	CbSize        uint32
  1955  	ITabLength    int32
  1956  	ILeftMargin   int32
  1957  	IRightMargin  int32
  1958  	UiLengthDrawn uint32
  1959  }
  1960  type DTBGOPTS struct {
  1961  	DwSize  DWORD
  1962  	DwFlags DWORD
  1963  	RcClip  RECT
  1964  }
  1965  type DTTOPTS struct {
  1966  	DwSize              DWORD
  1967  	DwFlags             DWORD
  1968  	CrText              COLORREF
  1969  	CrBorder            COLORREF
  1970  	CrShadow            COLORREF
  1971  	ITextShadowType     int32
  1972  	PtShadowOffset      POINT
  1973  	IBorderSize         int32
  1974  	IFontPropId         int32
  1975  	IColorPropId        int32
  1976  	IStateId            int32
  1977  	FApplyOverlay       BOOL
  1978  	IGlowSize           int32
  1979  	PfnDrawTextCallback uintptr // DTT_CALLBACK_PROC
  1980  	LParam              LPARAM
  1981  }
  1982  type DTT_CALLBACK_PROC func(hdc HDC, pszText LPWSTR, cchText int32, prc LPRECT, dwFlags UINT, lParam LPARAM) int32
  1983  type DVTARGETDEVICE struct {
  1984  	TdSize             DWORD
  1985  	TdDriverNameOffset WORD
  1986  	TdDeviceNameOffset WORD
  1987  	TdPortNameOffset   WORD
  1988  	TdExtDevmodeOffset WORD
  1989  	TdData             [1]BYTE
  1990  }
  1991  type DWORD_PTR *DWORD
  1992  type EFS_CERTIFICATE_BLOB struct {
  1993  	DwCertEncodingType DWORD
  1994  	CbData             DWORD
  1995  	PbData             PBYTE
  1996  }
  1997  type ENCRYPTION_CERTIFICATE struct {
  1998  	CbTotalLength DWORD
  1999  	PUserSid      *SID
  2000  	PCertBlob     *EFS_CERTIFICATE_BLOB
  2001  }
  2002  type ENCRYPTION_CERTIFICATE_LIST struct {
  2003  	NUsers DWORD
  2004  	PUsers *PENCRYPTION_CERTIFICATE
  2005  }
  2006  type ENG_TIME_FIELDS struct {
  2007  	UsYear         USHORT
  2008  	UsMonth        USHORT
  2009  	UsDay          USHORT
  2010  	UsHour         USHORT
  2011  	UsMinute       USHORT
  2012  	UsSecond       USHORT
  2013  	UsMilliseconds USHORT
  2014  	UsWeekday      USHORT
  2015  }
  2016  type ENHMETAHEADER struct {
  2017  	IType          DWORD
  2018  	NSize          DWORD
  2019  	RclBounds      RECTL
  2020  	RclFrame       RECTL
  2021  	DSignature     DWORD
  2022  	NVersion       DWORD
  2023  	NBytes         DWORD
  2024  	NRecords       DWORD
  2025  	NHandles       WORD
  2026  	SReserved      WORD
  2027  	NDescription   DWORD
  2028  	OffDescription DWORD
  2029  	NPalEntries    DWORD
  2030  	SzlDevice      SIZEL
  2031  	SzlMillimeters SIZEL
  2032  	CbPixelFormat  DWORD
  2033  	OffPixelFormat DWORD
  2034  	BOpenGL        DWORD
  2035  	SzlMicrometers SIZEL
  2036  }
  2037  type ENHMETARECORD struct {
  2038  	IType DWORD
  2039  	NSize DWORD
  2040  	DParm [1]DWORD
  2041  }
  2042  type ENHMFENUMPROC func(hdc HDC, lpht *HANDLETABLE, lpmr /*const*/ *ENHMETARECORD, nHandles int32, data LPARAM) int32
  2043  type ENUMLOGFONTEX struct {
  2044  	ElfLogFont  LOGFONT
  2045  	ElfFullName [LF_FULLFACESIZE]WCHAR
  2046  	ElfStyle    [LF_FACESIZE]WCHAR
  2047  	ElfScript   [LF_FACESIZE]WCHAR
  2048  }
  2049  type ENUMLOGFONTEXDV struct {
  2050  	ElfEnumLogfontEx ENUMLOGFONTEX
  2051  	ElfDesignVector  DESIGNVECTOR
  2052  }
  2053  type ENUMRESLANGPROC func(hModule HMODULE, lpType string, lpName string, wLanguage WORD, lParam LONG_PTR) BOOL
  2054  type ENUM_PAGE_FILE_INFORMATION struct {
  2055  	Cb         DWORD
  2056  	Reserved   DWORD
  2057  	TotalSize  SIZE_T
  2058  	TotalInUse SIZE_T
  2059  	PeakUsage  SIZE_T
  2060  }
  2061  type EXCEPINFO struct {
  2062  	WCode             WORD
  2063  	WReserved         WORD
  2064  	BstrSource        BSTR
  2065  	BstrDescription   BSTR
  2066  	BstrHelpFile      BSTR
  2067  	DwHelpContext     DWORD
  2068  	PvReserved        PVOID
  2069  	PfnDeferredFillIn uintptr
  2070  	Scode             SCODE
  2071  }
  2072  
  2073  func (this *EXCEPINFO) DeferredFillIn() func(unnamed0 *EXCEPINFO) HRESULT {
  2074  	return func(unnamed0 *EXCEPINFO) HRESULT {
  2075  		ret := syscall3(this.PfnDeferredFillIn, 1,
  2076  			uintptr(unsafe.Pointer(unnamed0)),
  2077  			0,
  2078  			0)
  2079  		return HRESULT(ret)
  2080  	}
  2081  }
  2082  
  2083  type EXPLICIT_ACCESS struct {
  2084  	GrfAccessPermissions DWORD
  2085  	GrfAccessMode        ACCESS_MODE
  2086  	GrfInheritance       DWORD
  2087  	Trustee              TRUSTEE
  2088  }
  2089  type EXPR_EVAL func(unnamed0 *MIDL_STUB_MESSAGE)
  2090  type Error_status_t uint32
  2091  type FARPROC func() INT_PTR
  2092  type FD_GLYPHATTR struct {
  2093  	CjThis     ULONG
  2094  	CGlyphs    ULONG
  2095  	IMode      ULONG
  2096  	AGlyphAttr [1]BYTE
  2097  }
  2098  type FILETIME struct {
  2099  	DwLowDateTime  uint32
  2100  	DwHighDateTime uint32
  2101  }
  2102  type FINDREPLACE struct {
  2103  	LStructSize      DWORD
  2104  	HwndOwner        HWND
  2105  	HInstance        HINSTANCE
  2106  	Flags            DWORD
  2107  	LpstrFindWhat    LPWSTR
  2108  	LpstrReplaceWith LPWSTR
  2109  	WFindWhatLen     WORD
  2110  	WReplaceWithLen  WORD
  2111  	LCustData        LPARAM
  2112  	LpfnHook         uintptr // LPFRHOOKPROC
  2113  	LpTemplateName   LPCWSTR
  2114  }
  2115  type FIX LONG
  2116  type FIXED struct {
  2117  	Fract WORD
  2118  	Value int16
  2119  }
  2120  type FIXED_INFO_W2KSP1 struct {
  2121  	HostName         [MAX_HOSTNAME_LEN + 4]CHAR
  2122  	DomainName       [MAX_DOMAIN_NAME_LEN + 4]CHAR
  2123  	CurrentDnsServer PIP_ADDR_STRING
  2124  	DnsServerList    IP_ADDR_STRING
  2125  	NodeType         UINT
  2126  	ScopeId          [MAX_SCOPE_ID_LEN + 4]CHAR
  2127  	EnableRouting    UINT
  2128  	EnableProxy      UINT
  2129  	EnableDns        UINT
  2130  }
  2131  type FLASHWINFO struct {
  2132  	CbSize    uint32 // UINT
  2133  	Hwnd      HWND
  2134  	DwFlags   uint32
  2135  	UCount    uint32 // UINT
  2136  	DwTimeout uint32
  2137  }
  2138  type FLOAT float32
  2139  type FLOATL FLOAT
  2140  type FLOAT_LONG struct {
  2141  	storage [4]byte
  2142  }
  2143  
  2144  func (this *FLOAT_LONG) E() *FLOATL {
  2145  	return (*FLOATL)(unsafe.Pointer(&this.storage[0]))
  2146  }
  2147  func (this *FLOAT_LONG) L() *LONG {
  2148  	return (*LONG)(unsafe.Pointer(&this.storage[0]))
  2149  }
  2150  
  2151  type FLONG uint32
  2152  type FLOWSPEC struct {
  2153  	TokenRate          ULONG
  2154  	TokenBucketSize    ULONG
  2155  	PeakBandwidth      ULONG
  2156  	Latency            ULONG
  2157  	DelayVariation     ULONG
  2158  	ServiceType        SERVICETYPE
  2159  	MaxSduSize         ULONG
  2160  	MinimumPolicedSize ULONG
  2161  }
  2162  type FMTID GUID
  2163  type FONTDESC struct {
  2164  	CbSizeofstruct UINT
  2165  	LpstrName      LPOLESTR
  2166  	CySize         CY
  2167  	SWeight        SHORT
  2168  	SCharset       SHORT
  2169  	FItalic        BOOL
  2170  	FUnderline     BOOL
  2171  	FStrikethrough BOOL
  2172  }
  2173  type FONTENUMPROC func(unnamed0 /*const*/ *LOGFONT, unnamed1 /*const*/ *TEXTMETRIC, unnamed2 DWORD, unnamed3 LPARAM) int32
  2174  type FONTINFO struct {
  2175  	CjThis           ULONG
  2176  	FlCaps           FLONG
  2177  	CGlyphsSupported ULONG
  2178  	CjMaxGlyph1      ULONG
  2179  	CjMaxGlyph4      ULONG
  2180  	CjMaxGlyph8      ULONG
  2181  	CjMaxGlyph32     ULONG
  2182  }
  2183  type FONTOBJ struct {
  2184  	IUniq        ULONG
  2185  	IFace        ULONG
  2186  	CxMax        ULONG
  2187  	FlFontType   FLONG
  2188  	ITTUniq      ULONG_PTR
  2189  	IFile        ULONG_PTR
  2190  	SizLogResPpi SIZE
  2191  	UlStyleSize  ULONG
  2192  	PvConsumer   PVOID
  2193  	PvProducer   PVOID
  2194  }
  2195  type FONTSIGNATURE struct {
  2196  	FsUsb [4]DWORD
  2197  	FsCsb [2]DWORD
  2198  }
  2199  type FORMATETC struct {
  2200  	CfFormat CLIPFORMAT
  2201  	Ptd      *DVTARGETDEVICE
  2202  	DwAspect DWORD
  2203  	Lindex   LONG
  2204  	Tymed    DWORD
  2205  }
  2206  type FOURCC DWORD
  2207  type FULL_PTR_XLAT_TABLES struct {
  2208  	RefIdToPointer uintptr
  2209  	PointerToRefId uintptr
  2210  	NextRefId      uint32
  2211  	XlatSide       XLAT_SIDE
  2212  }
  2213  type FXPT2DOT30 int32
  2214  type GCP_RESULTS struct {
  2215  	LStructSize DWORD
  2216  	LpOutString LPWSTR
  2217  	LpOrder     *UINT
  2218  	LpDx        *int32
  2219  	LpCaretPos  *int32
  2220  	LpClass     LPSTR
  2221  	LpGlyphs    LPWSTR
  2222  	NGlyphs     UINT
  2223  	NMaxFit     int32
  2224  }
  2225  type GENERIC_BINDING_INFO struct {
  2226  	PObj      uintptr
  2227  	Size      uint32
  2228  	PfnBind   uintptr // GENERIC_BINDING_ROUTINE
  2229  	PfnUnbind uintptr // GENERIC_UNBIND_ROUTINE
  2230  }
  2231  type GENERIC_BINDING_ROUTINE func(unnamed0 uintptr) uintptr
  2232  type GENERIC_BINDING_ROUTINE_PAIR struct {
  2233  	PfnBind   uintptr // GENERIC_BINDING_ROUTINE
  2234  	PfnUnbind uintptr // GENERIC_UNBIND_ROUTINE
  2235  }
  2236  type GENERIC_MAPPING struct {
  2237  	GenericRead    ACCESS_MASK
  2238  	GenericWrite   ACCESS_MASK
  2239  	GenericExecute ACCESS_MASK
  2240  	GenericAll     ACCESS_MASK
  2241  }
  2242  type GENERIC_UNBIND_ROUTINE func(unnamed0 uintptr, unnamed1 *byte)
  2243  type GEOID LONG
  2244  type GESTURECONFIG struct {
  2245  	DwID    uint32
  2246  	DwWant  uint32
  2247  	DwBlock uint32
  2248  }
  2249  type GESTUREINFO struct {
  2250  	CbSize       uint32 // UINT
  2251  	DwFlags      uint32
  2252  	DwID         uint32
  2253  	HwndTarget   HWND
  2254  	PtsLocation  POINTS
  2255  	DwInstanceID uint32
  2256  	DwSequenceID uint32
  2257  	padding1     [pad0for64_4for32]byte
  2258  	UllArguments int64  // ULONGLONG
  2259  	CbExtraArgs  uint32 // UINT
  2260  	padding2     [pad0for64_4for32]byte
  2261  }
  2262  type GLYPHBITS struct {
  2263  	PtlOrigin  POINTL
  2264  	SizlBitmap SIZEL
  2265  	Aj         [1]BYTE
  2266  }
  2267  type GLYPHDEF struct {
  2268  	p uintptr
  2269  }
  2270  
  2271  func (this *GLYPHDEF) Pgb() *GLYPHBITS {
  2272  	return (*GLYPHBITS)(unsafe.Pointer(this))
  2273  }
  2274  func (this *GLYPHDEF) Ppo() *PATHOBJ {
  2275  	return (*PATHOBJ)(unsafe.Pointer(this))
  2276  }
  2277  
  2278  type GLYPHMETRICS struct {
  2279  	GmBlackBoxX     UINT
  2280  	GmBlackBoxY     UINT
  2281  	GmptGlyphOrigin POINT
  2282  	GmCellIncX      int16
  2283  	GmCellIncY      int16
  2284  }
  2285  type GLYPHMETRICSFLOAT struct {
  2286  	GmfBlackBoxX     float32
  2287  	GmfBlackBoxY     float32
  2288  	GmfptGlyphOrigin POINTFLOAT
  2289  	GmfCellIncX      float32
  2290  	GmfCellIncY      float32
  2291  }
  2292  type GLYPHPOS struct {
  2293  	Hg   HGLYPH
  2294  	Pgdf *GLYPHDEF
  2295  	Ptl  POINTL
  2296  }
  2297  type GLYPHSET struct {
  2298  	CbThis           DWORD
  2299  	FlAccel          DWORD
  2300  	CGlyphsSupported DWORD
  2301  	CRanges          DWORD
  2302  	Ranges           [1]WCRANGE
  2303  }
  2304  type GLbitfield uint32
  2305  type GLboolean byte
  2306  type GLbyte int8
  2307  type GLclampd float64
  2308  type GLclampf float32
  2309  type GLdouble float64
  2310  type GLenum uint32
  2311  type GLfloat float32
  2312  type GLint int32
  2313  type GLshort int16
  2314  type GLsizei uint32
  2315  type GLubyte uint8
  2316  type GLuint uint32
  2317  type GLushort uint16
  2318  type GOBJENUMPROC func(unnamed0 LPVOID, unnamed1 LPARAM) int32
  2319  type GRAYSTRINGPROC func(hdc HDC, lParam LPARAM, cchData int) BOOL
  2320  type GROUP uint32
  2321  type GUID struct {
  2322  	Data1 uint32
  2323  	Data2 uint16
  2324  	Data3 uint16
  2325  	Data4 [8]byte
  2326  }
  2327  type GUITHREADINFO struct {
  2328  	CbSize        uint32
  2329  	Flags         uint32
  2330  	HwndActive    HWND
  2331  	HwndFocus     HWND
  2332  	HwndCapture   HWND
  2333  	HwndMenuOwner HWND
  2334  	HwndMoveSize  HWND
  2335  	HwndCaret     HWND
  2336  	RcCaret       RECT
  2337  }
  2338  type GdiplusStartupInput struct {
  2339  	GdiplusVersion           uint32
  2340  	DebugEventCallback       uintptr // DebugEventProc
  2341  	SuppressBackgroundThread BOOL
  2342  	SuppressExternalCodecs   BOOL
  2343  }
  2344  type GdiplusStartupOutput struct {
  2345  	storage [2]uintptr
  2346  }
  2347  type HACCEL HANDLE
  2348  type HANDLE uintptr
  2349  type HANDLER_FUNCTION_EX func(dwControl uint32, dwEventType uint32, lpEventData uintptr, lpContext uintptr) uint32
  2350  type HANDLETABLE struct {
  2351  	ObjectHandle [1]HGDIOBJ
  2352  }
  2353  type HANIMATIONBUFFER HANDLE
  2354  type HARDWAREINPUT struct {
  2355  	UMsg    uint32
  2356  	WParamL uint16
  2357  	WParamH uint16
  2358  }
  2359  type HBITMAP HGDIOBJ
  2360  type HBRUSH HGDIOBJ
  2361  type HCERTSTORE uintptr
  2362  type HCOLORSPACE HANDLE
  2363  type HCONV HANDLE
  2364  type HCONVLIST HANDLE
  2365  type HCRYPTHASH uintptr
  2366  type HCRYPTKEY uintptr
  2367  type HCRYPTMSG uintptr
  2368  type HCRYPTPROV uintptr
  2369  type HCURSOR HANDLE
  2370  type HDC HANDLE
  2371  type HDDEDATA HANDLE
  2372  type HDESK HANDLE
  2373  type HDEV HANDLE
  2374  type HDEVNOTIFY uintptr
  2375  type HDPA uintptr
  2376  type HDROP HANDLE
  2377  type HDRVR HANDLE
  2378  type HDSA uintptr
  2379  type HDWP HANDLE
  2380  type HELPINFO struct {
  2381  	CbSize       UINT
  2382  	IContextType int32
  2383  	ICtrlId      int32
  2384  	HItemHandle  HANDLE
  2385  	DwContextId  DWORD_PTR
  2386  	MousePos     POINT
  2387  }
  2388  type HENHMETAFILE HANDLE
  2389  type HFONT HGDIOBJ
  2390  type HGDIOBJ HANDLE
  2391  type HGESTUREINFO HANDLE
  2392  type HGLOBAL HANDLE
  2393  type HGLRC HANDLE
  2394  type HGLYPH ULONG
  2395  type HHOOK HANDLE
  2396  type HICON HANDLE
  2397  type HIMAGELIST uintptr
  2398  type HIMC HANDLE
  2399  type HIMCC HANDLE
  2400  type HINSTANCE HANDLE
  2401  type HKEY HANDLE
  2402  type HKL HANDLE
  2403  type HLOCAL HANDLE
  2404  type HMENU HANDLE
  2405  type HMETAFILE HANDLE
  2406  type HMETAFILEPICT uintptr
  2407  type HMIDI HANDLE
  2408  type HMIDIIN HANDLE
  2409  type HMIDIOUT HANDLE
  2410  type HMIDISTRM HANDLE
  2411  type HMIXER HANDLE
  2412  type HMIXEROBJ HANDLE
  2413  type HMMIO HANDLE
  2414  type HMODULE uintptr
  2415  type HMONITOR HANDLE
  2416  type HOLEMENU HGLOBAL
  2417  type HOOKPROC func(code int32, wParam WPARAM, lParam LPARAM) LRESULT
  2418  type HPAINTBUFFER HANDLE
  2419  type HPALETTE HGDIOBJ
  2420  type HPEN HGDIOBJ
  2421  type HPOWERNOTIFY uintptr
  2422  type HPROPSHEETPAGE uintptr
  2423  type HPSTR *CHAR
  2424  type HPSXA HANDLE
  2425  type HRAWINPUT HANDLE
  2426  type HRESULT int32
  2427  type HRGN HANDLE
  2428  type HRSRC HANDLE
  2429  type HSEMAPHORE HANDLE
  2430  type HSURF HANDLE
  2431  type HSZ HANDLE
  2432  type HTASK HANDLE
  2433  type HTHEME HANDLE
  2434  type HTOUCHINPUT HANDLE
  2435  type HUSKEY HANDLE
  2436  type HWAVEIN HANDLE
  2437  type HWAVEOUT HANDLE
  2438  type HWCT uintptr
  2439  type HWINEVENTHOOK HANDLE
  2440  type HWINSTA HANDLE
  2441  type HWND HANDLE
  2442  type Handle_t RPC_BINDING_HANDLE
  2443  type IAdviseSink struct {
  2444  	lpVtbl uintptr
  2445  }
  2446  type IBindCtx struct {
  2447  	lpVtbl uintptr
  2448  }
  2449  type ICMENUMPROC func(unnamed0 LPWSTR, unnamed1 LPARAM) int32
  2450  type ICONINFO struct {
  2451  	FIcon    BOOL
  2452  	XHotspot uint32
  2453  	YHotspot uint32
  2454  	HbmMask  HBITMAP
  2455  	HbmColor HBITMAP
  2456  }
  2457  type IChannelHook struct {
  2458  	lpVtbl uintptr
  2459  }
  2460  type IClassFactory struct {
  2461  	lpVtbl uintptr
  2462  }
  2463  type IConnectionPoint struct {
  2464  	lpVtbl uintptr
  2465  }
  2466  type IContextMenu struct {
  2467  	lpVtbl uintptr
  2468  }
  2469  type IContextMenuCB struct {
  2470  	lpVtbl uintptr
  2471  }
  2472  type ICreateErrorInfo struct {
  2473  	lpVtbl uintptr
  2474  }
  2475  type ICreateTypeLib struct {
  2476  	lpVtbl uintptr
  2477  }
  2478  type ICreateTypeLib2 struct {
  2479  	lpVtbl uintptr
  2480  }
  2481  type IDataAdviseHolder struct {
  2482  	lpVtbl uintptr
  2483  }
  2484  type IDataObject struct {
  2485  	lpVtbl uintptr
  2486  }
  2487  type IDispatch struct {
  2488  	lpVtbl uintptr
  2489  }
  2490  type IDropSource struct {
  2491  	lpVtbl uintptr
  2492  }
  2493  type IDropTarget struct {
  2494  	lpVtbl uintptr
  2495  }
  2496  type IEnumAssocHandlers struct {
  2497  	lpVtbl uintptr
  2498  }
  2499  type IEnumFORMATETC struct {
  2500  	lpVtbl uintptr
  2501  }
  2502  type IEnumOLEVERB struct {
  2503  	lpVtbl uintptr
  2504  }
  2505  type IErrorInfo struct {
  2506  	lpVtbl uintptr
  2507  }
  2508  type IFTYPE ULONG
  2509  type IF_INDEX NET_IFINDEX
  2510  type IF_LUID NET_LUID
  2511  type IID GUID
  2512  type IInitializeSpy struct {
  2513  	lpVtbl uintptr
  2514  }
  2515  type ILockBytes struct {
  2516  	lpVtbl uintptr
  2517  }
  2518  type IMAGEINFO struct {
  2519  	HbmImage HBITMAP
  2520  	HbmMask  HBITMAP
  2521  	Unused1  int32
  2522  	Unused2  int32
  2523  	RcImage  RECT
  2524  }
  2525  type IMAGELISTDRAWPARAMS struct {
  2526  	CbSize   DWORD
  2527  	Himl     HIMAGELIST
  2528  	I        int32
  2529  	HdcDst   HDC
  2530  	X        int32
  2531  	Y        int32
  2532  	Cx       int32
  2533  	Cy       int32
  2534  	XBitmap  int32
  2535  	YBitmap  int32
  2536  	RgbBk    COLORREF
  2537  	RgbFg    COLORREF
  2538  	FStyle   UINT
  2539  	DwRop    DWORD
  2540  	FState   DWORD
  2541  	Frame    DWORD
  2542  	CrEffect COLORREF
  2543  }
  2544  type IMCENUMPROC func(unnamed0 HIMC, unnamed1 LPARAM) BOOL
  2545  type IMEMENUITEMINFO struct {
  2546  	CbSize        UINT
  2547  	FType         UINT
  2548  	FState        UINT
  2549  	WID           UINT
  2550  	HbmpChecked   HBITMAP
  2551  	HbmpUnchecked HBITMAP
  2552  	DwItemData    DWORD
  2553  	SzString      [IMEMENUITEM_STRING_SIZE]WCHAR
  2554  	HbmpItem      HBITMAP
  2555  }
  2556  type IMEPRO struct {
  2557  	HWnd          HWND
  2558  	InstDate      DATETIME
  2559  	WVersion      uint32 // UINT
  2560  	SzDescription [50]uint16
  2561  	SzName        [80]uint16
  2562  	SzOptions     [30]uint16
  2563  }
  2564  type IMalloc struct {
  2565  	lpVtbl uintptr
  2566  }
  2567  type IMallocSpy struct {
  2568  	lpVtbl uintptr
  2569  }
  2570  type IMarshal struct {
  2571  	lpVtbl uintptr
  2572  }
  2573  type IMessageFilter struct {
  2574  	lpVtbl uintptr
  2575  }
  2576  type IMoniker struct {
  2577  	lpVtbl uintptr
  2578  }
  2579  type IN6_ADDR struct {
  2580  	U IN6_ADDR_U
  2581  }
  2582  type IN6_ADDR_U struct {
  2583  	storage [16]byte
  2584  }
  2585  
  2586  func (this *IN6_ADDR_U) GetByte() [16]UCHAR {
  2587  	var ret [16]UCHAR
  2588  	for i := 0; i < 16; i++ {
  2589  		ret[i] = UCHAR(this.storage[i])
  2590  	}
  2591  	return ret
  2592  }
  2593  func (this *IN6_ADDR_U) SetByte(v [16]UCHAR) {
  2594  	for i := 0; i < 16; i++ {
  2595  		this.storage[i] = byte(v[i])
  2596  	}
  2597  }
  2598  func (this *IN6_ADDR_U) GetWord() [8]USHORT {
  2599  	var ret [8]USHORT
  2600  	for i := 0; i < 8; i++ {
  2601  		ret[i] = *(*USHORT)(unsafe.Pointer(&this.storage[i*2]))
  2602  	}
  2603  	return ret
  2604  }
  2605  func (this *IN6_ADDR_U) SetWord(v [8]USHORT) {
  2606  	for i := 0; i < 8; i++ {
  2607  		ptr := (*USHORT)(unsafe.Pointer(&this.storage[i*2]))
  2608  		*ptr = v[i]
  2609  	}
  2610  }
  2611  
  2612  type INITCOMMONCONTROLSEX struct {
  2613  	DwSize DWORD
  2614  	DwICC  DWORD
  2615  }
  2616  type INPUT struct {
  2617  	Type     uint32
  2618  	padding1 [pad4for64_0for32]byte
  2619  	data     [8 * pad4for64_3for32]byte
  2620  }
  2621  
  2622  func (this *INPUT) Mi() *MOUSEINPUT {
  2623  	return (*MOUSEINPUT)(unsafe.Pointer(&this.data[0]))
  2624  }
  2625  func (this *INPUT) Ki() *KEYBDINPUT {
  2626  	return (*KEYBDINPUT)(unsafe.Pointer(&this.data[0]))
  2627  }
  2628  func (this *INPUT) Hi() *HARDWAREINPUT {
  2629  	return (*HARDWAREINPUT)(unsafe.Pointer(&this.data[0]))
  2630  }
  2631  
  2632  type INT int32
  2633  type INTERFACEDATA struct {
  2634  	Pmethdata *METHODDATA
  2635  	CMembers  UINT
  2636  }
  2637  type INTERFACE_HANDLE PVOID
  2638  type INTLIST struct {
  2639  	IValueCount int32
  2640  	IValues     [MAX_INTLIST_COUNT]int32
  2641  }
  2642  type INT_PTR *int32
  2643  type IN_ADDR struct {
  2644  	S_un IN_ADDR_S_un
  2645  }
  2646  type IN_ADDR_S_un struct {
  2647  	storage ULONG
  2648  }
  2649  type IN_ADDR_S_un_b struct {
  2650  	s_b1, s_b2, s_b3, s_b4 UCHAR
  2651  }
  2652  type IN_ADDR_S_un_w struct {
  2653  	s_w1, s_w2 USHORT
  2654  }
  2655  
  2656  func (this *IN_ADDR_S_un) S_un_b() *IN_ADDR_S_un_b {
  2657  	return (*IN_ADDR_S_un_b)(unsafe.Pointer(&this.storage))
  2658  }
  2659  func (this *IN_ADDR_S_un) S_un_w() *IN_ADDR_S_un_w {
  2660  	return (*IN_ADDR_S_un_w)(unsafe.Pointer(&this.storage))
  2661  }
  2662  func (this *IN_ADDR_S_un) S_addr() *ULONG {
  2663  	return (*ULONG)(unsafe.Pointer(&this.storage))
  2664  }
  2665  func (this *IN_ADDR) S_addr() ULONG {
  2666  	return *this.S_un.S_addr()
  2667  }
  2668  func (this *IN_ADDR) S_host() UCHAR {
  2669  	return this.S_un.S_un_b().s_b2
  2670  }
  2671  func (this *IN_ADDR) S_net() UCHAR {
  2672  	return this.S_un.S_un_b().s_b1
  2673  }
  2674  func (this *IN_ADDR) S_imp() USHORT {
  2675  	return this.S_un.S_un_w().s_w2
  2676  }
  2677  func (this *IN_ADDR) S_impno() UCHAR {
  2678  	return this.S_un.S_un_b().s_b4
  2679  }
  2680  func (this *IN_ADDR) S_lh() UCHAR {
  2681  	return this.S_un.S_un_b().s_b3
  2682  }
  2683  
  2684  type IO_STATUS_BLOCK struct {
  2685  	union1      uintptr
  2686  	Information ULONG_PTR
  2687  }
  2688  
  2689  func (this *IO_STATUS_BLOCK) Status() *NTSTATUS {
  2690  	return (*NTSTATUS)(unsafe.Pointer(&this.union1))
  2691  }
  2692  func (this *IO_STATUS_BLOCK) Pointer() *PVOID {
  2693  	return (*PVOID)(unsafe.Pointer(&this.union1))
  2694  }
  2695  
  2696  type IOleAdviseHolder struct {
  2697  	lpVtbl uintptr
  2698  }
  2699  type IOleClientSite struct {
  2700  	lpVtbl uintptr
  2701  }
  2702  type IOleInPlaceActiveObject struct {
  2703  	lpVtbl uintptr
  2704  }
  2705  type IOleInPlaceFrame struct {
  2706  	lpVtbl uintptr
  2707  }
  2708  type IOleObject struct {
  2709  	lpVtbl uintptr
  2710  }
  2711  type IPAddr ULONG
  2712  type IPMask ULONG
  2713  
  2714  func (this *IP_ADAPTER_ADDRESSES_LH) Alignment() *ULONGLONG {
  2715  	return &this.union1
  2716  }
  2717  func (this *IP_ADAPTER_ADDRESSES_LH) Length() *ULONG {
  2718  	return (*ULONG)(unsafe.Pointer(&this.union1))
  2719  }
  2720  func (this *IP_ADAPTER_ADDRESSES_LH) IfIndex() *IF_INDEX {
  2721  	return (*IF_INDEX)(unsafe.Pointer(uintptr(unsafe.Pointer(&this.union1)) + uintptr(4)))
  2722  }
  2723  func (this *IP_ADAPTER_ADDRESSES_LH) Flags() *ULONG {
  2724  	return (*ULONG)(unsafe.Pointer(&this.union2))
  2725  }
  2726  func (this *IP_ADAPTER_ADDRESSES_LH) DdnsEnabled() bool {
  2727  	return this.union2 == 0x80000000
  2728  }
  2729  func (this *IP_ADAPTER_ADDRESSES_LH) RegisterAdapterSuffix() bool {
  2730  	return this.union2 == 0x20000000
  2731  }
  2732  func (this *IP_ADAPTER_ADDRESSES_LH) Dhcpv4Enabled() bool {
  2733  	return this.union2 == 0x10000000
  2734  }
  2735  func (this *IP_ADAPTER_ADDRESSES_LH) ReceiveOnly() bool {
  2736  	return this.union2 == 0x8000000
  2737  }
  2738  func (this *IP_ADAPTER_ADDRESSES_LH) NoMulticast() bool {
  2739  	return this.union2 == 0x2000000
  2740  }
  2741  func (this *IP_ADAPTER_ADDRESSES_LH) Ipv6OtherStatefulConfig() bool {
  2742  	return this.union2 == 0x1000000
  2743  }
  2744  func (this *IP_ADAPTER_ADDRESSES_LH) NetbiosOverTcpipEnabled() bool {
  2745  	return this.union2 == 0x800000
  2746  }
  2747  func (this *IP_ADAPTER_ADDRESSES_LH) Ipv4Enabled() bool {
  2748  	return this.union2 == 0x200000
  2749  }
  2750  func (this *IP_ADAPTER_ADDRESSES_LH) Ipv6Enabled() bool {
  2751  	return this.union2 == 0x100000
  2752  }
  2753  func (this *IP_ADAPTER_ADDRESSES_LH) Ipv6ManagedAddressConfigurationSupported() bool {
  2754  	return this.union2 == 0x80000
  2755  }
  2756  func (this *IP_ADAPTER_ANYCAST_ADDRESS_XP) Alignment() *ULONGLONG {
  2757  	return (*ULONGLONG)(unsafe.Pointer(&this.union1))
  2758  }
  2759  func (this *IP_ADAPTER_ANYCAST_ADDRESS_XP) Length() *ULONG {
  2760  	return (*ULONG)(unsafe.Pointer(&this.union1))
  2761  }
  2762  func (this *IP_ADAPTER_ANYCAST_ADDRESS_XP) Flags() *DWORD {
  2763  	return (*DWORD)(unsafe.Pointer(uintptr(unsafe.Pointer(&this.union1)) + uintptr(4)))
  2764  }
  2765  func (this *IP_ADAPTER_DNS_SERVER_ADDRESS_XP) Alignment() *ULONGLONG {
  2766  	return (*ULONGLONG)(unsafe.Pointer(&this.union1))
  2767  }
  2768  func (this *IP_ADAPTER_DNS_SERVER_ADDRESS_XP) Length() *ULONG {
  2769  	return (*ULONG)(unsafe.Pointer(&this.union1))
  2770  }
  2771  func (this *IP_ADAPTER_DNS_SERVER_ADDRESS_XP) Reserved() *DWORD {
  2772  	return (*DWORD)(unsafe.Pointer(uintptr(unsafe.Pointer(&this.union1)) + uintptr(4)))
  2773  }
  2774  
  2775  type IP_ADAPTER_DNS_SUFFIX struct {
  2776  	Next   *IP_ADAPTER_DNS_SUFFIX
  2777  	String [MAX_DNS_SUFFIX_STRING_LENGTH]WCHAR
  2778  }
  2779  
  2780  func (this *IP_ADAPTER_GATEWAY_ADDRESS_LH) Alignment() *ULONGLONG {
  2781  	return (*ULONGLONG)(unsafe.Pointer(&this.union1))
  2782  }
  2783  func (this *IP_ADAPTER_GATEWAY_ADDRESS_LH) Length() *ULONG {
  2784  	return (*ULONG)(unsafe.Pointer(&this.union1))
  2785  }
  2786  func (this *IP_ADAPTER_GATEWAY_ADDRESS_LH) Reserved() *DWORD {
  2787  	return (*DWORD)(unsafe.Pointer(uintptr(unsafe.Pointer(&this.union1)) + uintptr(4)))
  2788  }
  2789  
  2790  type IP_ADAPTER_INDEX_MAP struct {
  2791  	Index ULONG
  2792  	Name  [MAX_ADAPTER_NAME]WCHAR
  2793  }
  2794  type IP_ADAPTER_INFO struct {
  2795  	Next                *IP_ADAPTER_INFO
  2796  	ComboIndex          DWORD
  2797  	AdapterName         [MAX_ADAPTER_NAME_LENGTH + 4]CHAR
  2798  	Description         [MAX_ADAPTER_DESCRIPTION_LENGTH + 4]CHAR
  2799  	AddressLength       UINT
  2800  	Address             [MAX_ADAPTER_ADDRESS_LENGTH]BYTE
  2801  	Index               DWORD
  2802  	Type                UINT
  2803  	DhcpEnabled         UINT
  2804  	CurrentIpAddress    PIP_ADDR_STRING
  2805  	IpAddressList       IP_ADDR_STRING
  2806  	GatewayList         IP_ADDR_STRING
  2807  	DhcpServer          IP_ADDR_STRING
  2808  	HaveWins            BOOL
  2809  	PrimaryWinsServer   IP_ADDR_STRING
  2810  	SecondaryWinsServer IP_ADDR_STRING
  2811  	LeaseObtained       Time_t
  2812  	LeaseExpires        Time_t
  2813  }
  2814  
  2815  func (this *IP_ADAPTER_MULTICAST_ADDRESS_XP) Alignment() *ULONGLONG {
  2816  	return (*ULONGLONG)(unsafe.Pointer(&this.union1))
  2817  }
  2818  func (this *IP_ADAPTER_MULTICAST_ADDRESS_XP) Length() *ULONG {
  2819  	return (*ULONG)(unsafe.Pointer(&this.union1))
  2820  }
  2821  func (this *IP_ADAPTER_MULTICAST_ADDRESS_XP) Flags() *DWORD {
  2822  	return (*DWORD)(unsafe.Pointer(uintptr(unsafe.Pointer(&this.union1)) + uintptr(4)))
  2823  }
  2824  
  2825  type IP_ADAPTER_ORDER_MAP struct {
  2826  	NumAdapters  ULONG
  2827  	AdapterOrder [1]ULONG
  2828  }
  2829  type IP_ADAPTER_PREFIX_XP struct {
  2830  	union1       ULONGLONG
  2831  	Next         *IP_ADAPTER_PREFIX_XP
  2832  	Address      SOCKET_ADDRESS
  2833  	PrefixLength ULONG
  2834  }
  2835  
  2836  func (this *IP_ADAPTER_PREFIX_XP) Alignment() *ULONGLONG {
  2837  	return (*ULONGLONG)(unsafe.Pointer(&this.union1))
  2838  }
  2839  func (this *IP_ADAPTER_PREFIX_XP) Length() *ULONG {
  2840  	return (*ULONG)(unsafe.Pointer(&this.union1))
  2841  }
  2842  func (this *IP_ADAPTER_PREFIX_XP) Flags() *DWORD {
  2843  	return (*DWORD)(unsafe.Pointer(uintptr(unsafe.Pointer(&this.union1)) + uintptr(4)))
  2844  }
  2845  
  2846  type IP_ADAPTER_UNICAST_ADDRESS_LH struct {
  2847  	union1             ULONGLONG
  2848  	Next               *IP_ADAPTER_UNICAST_ADDRESS_LH
  2849  	Address            SOCKET_ADDRESS
  2850  	PrefixOrigin       IP_PREFIX_ORIGIN
  2851  	SuffixOrigin       IP_SUFFIX_ORIGIN
  2852  	DadState           IP_DAD_STATE
  2853  	ValidLifetime      ULONG
  2854  	PreferredLifetime  ULONG
  2855  	LeaseLifetime      ULONG
  2856  	OnLinkPrefixLength UINT8
  2857  }
  2858  
  2859  func (this *IP_ADAPTER_UNICAST_ADDRESS_LH) Alignment() *ULONGLONG {
  2860  	return (*ULONGLONG)(unsafe.Pointer(&this.union1))
  2861  }
  2862  func (this *IP_ADAPTER_UNICAST_ADDRESS_LH) Length() *ULONG {
  2863  	return (*ULONG)(unsafe.Pointer(&this.union1))
  2864  }
  2865  func (this *IP_ADAPTER_UNICAST_ADDRESS_LH) Flags() *DWORD {
  2866  	return (*DWORD)(unsafe.Pointer(uintptr(unsafe.Pointer(&this.union1)) + uintptr(4)))
  2867  }
  2868  func (this *IP_ADAPTER_WINS_SERVER_ADDRESS_LH) Alignment() *ULONGLONG {
  2869  	return (*ULONGLONG)(unsafe.Pointer(&this.union1))
  2870  }
  2871  func (this *IP_ADAPTER_WINS_SERVER_ADDRESS_LH) Length() *ULONG {
  2872  	return (*ULONG)(unsafe.Pointer(&this.union1))
  2873  }
  2874  func (this *IP_ADAPTER_WINS_SERVER_ADDRESS_LH) Reserved() *DWORD {
  2875  	return (*DWORD)(unsafe.Pointer(uintptr(unsafe.Pointer(&this.union1)) + uintptr(4)))
  2876  }
  2877  
  2878  type IP_ADDRESS_STRING struct {
  2879  	String [4 * 4]CHAR
  2880  }
  2881  type IP_ADDR_STRING struct {
  2882  	Next      *IP_ADDR_STRING
  2883  	IpAddress IP_ADDRESS_STRING
  2884  	IpMask    IP_MASK_STRING
  2885  	Context   DWORD
  2886  }
  2887  type IP_DAD_STATE NL_DAD_STATE
  2888  type IP_INTERFACE_INFO struct {
  2889  	NumAdapters LONG
  2890  	Adapter     [1]IP_ADAPTER_INDEX_MAP
  2891  }
  2892  type IP_INTERFACE_NAME_INFO IP_INTERFACE_NAME_INFO_W2KSP1
  2893  type IP_INTERFACE_NAME_INFO_W2KSP1 struct {
  2894  	Index          ULONG
  2895  	MediaType      ULONG
  2896  	ConnectionType UCHAR
  2897  	AccessType     UCHAR
  2898  	DeviceGuid     GUID
  2899  	InterfaceGuid  GUID
  2900  }
  2901  type IP_MASK_STRING struct {
  2902  	String [4 * 4]CHAR
  2903  }
  2904  type IP_OPTION_INFORMATION struct {
  2905  	Ttl         UCHAR
  2906  	Tos         UCHAR
  2907  	Flags       UCHAR
  2908  	OptionsSize UCHAR
  2909  	OptionsData PUCHAR
  2910  }
  2911  type IP_PER_ADAPTER_INFO_W2KSP1 struct {
  2912  	AutoconfigEnabled UINT
  2913  	AutoconfigActive  UINT
  2914  	CurrentDnsServer  PIP_ADDR_STRING
  2915  	DnsServerList     IP_ADDR_STRING
  2916  }
  2917  type IP_PREFIX_ORIGIN NL_PREFIX_ORIGIN
  2918  type IP_STATUS ULONG
  2919  type IP_SUFFIX_ORIGIN NL_SUFFIX_ORIGIN
  2920  type IP_UNIDIRECTIONAL_ADAPTER_ADDRESS struct {
  2921  	NumAdapters ULONG
  2922  	Address     [1]IPAddr
  2923  }
  2924  type IPersistStorage struct {
  2925  	lpVtbl uintptr
  2926  }
  2927  type IPersistStream struct {
  2928  	lpVtbl uintptr
  2929  }
  2930  type IPropertySetStorage struct {
  2931  	lpVtbl uintptr
  2932  }
  2933  type IPropertyStorage struct {
  2934  	lpVtbl uintptr
  2935  }
  2936  type IRecordInfo struct {
  2937  	lpVtbl uintptr
  2938  }
  2939  type IRpcChannelBuffer struct {
  2940  	lpVtbl uintptr
  2941  }
  2942  type IRpcStubBuffer struct {
  2943  	lpVtbl uintptr
  2944  }
  2945  type IRunningObjectTable struct {
  2946  	lpVtbl uintptr
  2947  }
  2948  type IShellFolder struct {
  2949  	lpVtbl uintptr
  2950  }
  2951  type IShellFolderViewCB struct {
  2952  	lpVtbl uintptr
  2953  }
  2954  type IShellItem struct {
  2955  	lpVtbl uintptr
  2956  }
  2957  type IShellItemArray struct {
  2958  	lpVtbl uintptr
  2959  }
  2960  type IShellView struct {
  2961  	lpVtbl uintptr
  2962  }
  2963  type IStorage struct {
  2964  	lpVtbl uintptr
  2965  }
  2966  type IStream struct {
  2967  	lpVtbl uintptr
  2968  }
  2969  type ITEMIDLIST struct {
  2970  	Mkid SHITEMID
  2971  }
  2972  type ITypeInfo struct {
  2973  	lpVtbl uintptr
  2974  }
  2975  type ITypeLib struct {
  2976  	lpVtbl uintptr
  2977  }
  2978  type IUnknown struct {
  2979  	lpVtbl uintptr
  2980  }
  2981  type I_RPC_HANDLE uintptr
  2982  type JOYCAPS struct {
  2983  	WMid        WORD
  2984  	WPid        WORD
  2985  	SzPname     [MAXPNAMELEN]WCHAR
  2986  	WXmin       UINT
  2987  	WXmax       UINT
  2988  	WYmin       UINT
  2989  	WYmax       UINT
  2990  	WZmin       UINT
  2991  	WZmax       UINT
  2992  	WNumButtons UINT
  2993  	WPeriodMin  UINT
  2994  	WPeriodMax  UINT
  2995  	WRmin       UINT
  2996  	WRmax       UINT
  2997  	WUmin       UINT
  2998  	WUmax       UINT
  2999  	WVmin       UINT
  3000  	WVmax       UINT
  3001  	WCaps       UINT
  3002  	WMaxAxes    UINT
  3003  	WNumAxes    UINT
  3004  	WMaxButtons UINT
  3005  	SzRegKey    [MAXPNAMELEN]WCHAR
  3006  	SzOEMVxD    [MAX_JOYSTICKOEMVXDNAME]WCHAR
  3007  }
  3008  type JOYINFO struct {
  3009  	WXpos    UINT
  3010  	WYpos    UINT
  3011  	WZpos    UINT
  3012  	WButtons UINT
  3013  }
  3014  type JOYINFOEX struct {
  3015  	DwSize         DWORD
  3016  	DwFlags        DWORD
  3017  	DwXpos         DWORD
  3018  	DwYpos         DWORD
  3019  	DwZpos         DWORD
  3020  	DwRpos         DWORD
  3021  	DwUpos         DWORD
  3022  	DwVpos         DWORD
  3023  	DwButtons      DWORD
  3024  	DwButtonNumber DWORD
  3025  	DwPOV          DWORD
  3026  	DwReserved1    DWORD
  3027  	DwReserved2    DWORD
  3028  }
  3029  type KERNINGPAIR struct {
  3030  	WFirst      WORD
  3031  	WSecond     WORD
  3032  	IKernAmount int32
  3033  }
  3034  type KEYBDINPUT struct {
  3035  	WVk         uint16
  3036  	WScan       uint16
  3037  	DwFlags     uint32
  3038  	Time        uint32
  3039  	DwExtraInfo uintptr // ULONG_PTR
  3040  }
  3041  type KNOWNFOLDERID GUID
  3042  type LANGID uint16
  3043  type LARGE_INTEGER struct {
  3044  	QuadPart int64
  3045  }
  3046  
  3047  func (l *LARGE_INTEGER) LowPart() *uint32 {
  3048  	return (*uint32)(unsafe.Pointer(&l.QuadPart))
  3049  }
  3050  func (l *LARGE_INTEGER) HighPart() *int32 {
  3051  	return (*int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&l.QuadPart)) + uintptr(4)))
  3052  }
  3053  
  3054  type LASTINPUTINFO struct {
  3055  	CbSize uint32 // UINT
  3056  	DwTime uint32
  3057  }
  3058  type LAYERPLANEDESCRIPTOR struct {
  3059  	NSize           uint16
  3060  	NVersion        uint16
  3061  	DwFlags         uint32
  3062  	IPixelType      byte
  3063  	CColorBits      byte
  3064  	CRedBits        byte
  3065  	CRedShift       byte
  3066  	CGreenBits      byte
  3067  	CGreenShift     byte
  3068  	CBlueBits       byte
  3069  	CBlueShift      byte
  3070  	CAlphaBits      byte
  3071  	CAlphaShift     byte
  3072  	CAccumBits      byte
  3073  	CAccumRedBits   byte
  3074  	CAccumGreenBits byte
  3075  	CAccumBlueBits  byte
  3076  	CAccumAlphaBits byte
  3077  	CDepthBits      byte
  3078  	CStencilBits    byte
  3079  	CAuxBuffers     byte
  3080  	ILayerPlane     byte
  3081  	BReserved       byte
  3082  	CrTransparent   COLORREF
  3083  }
  3084  type LCID uint32
  3085  type LCSCSTYPE LONG
  3086  type LCSGAMUTMATCH LONG
  3087  type LCTYPE uint32
  3088  type LINEATTRS struct {
  3089  	Fl           FLONG
  3090  	IJoin        ULONG
  3091  	IEndCap      ULONG
  3092  	ElWidth      FLOAT_LONG
  3093  	EMiterLimit  FLOATL
  3094  	Cstyle       ULONG
  3095  	Pstyle       PFLOAT_LONG
  3096  	ElStyleState FLOAT_LONG
  3097  }
  3098  type LINEDDAPROC func(unnamed0 int32, unnamed1 int32, unnamed LPARAM)
  3099  type LOGBRUSH struct {
  3100  	LbStyle UINT
  3101  	LbColor COLORREF
  3102  	LbHatch ULONG_PTR
  3103  }
  3104  type LOGCOLORSPACE struct {
  3105  	LcsSignature  DWORD
  3106  	LcsVersion    DWORD
  3107  	LcsSize       DWORD
  3108  	LcsCSType     LCSCSTYPE
  3109  	LcsIntent     LCSGAMUTMATCH
  3110  	LcsEndpoints  CIEXYZTRIPLE
  3111  	LcsGammaRed   DWORD
  3112  	LcsGammaGreen DWORD
  3113  	LcsGammaBlue  DWORD
  3114  	LcsFilename   [MAX_PATH]WCHAR
  3115  }
  3116  type LOGFONT struct {
  3117  	LfHeight         LONG
  3118  	LfWidth          LONG
  3119  	LfEscapement     LONG
  3120  	LfOrientation    LONG
  3121  	LfWeight         LONG
  3122  	LfItalic         byte
  3123  	LfUnderline      byte
  3124  	LfStrikeOut      byte
  3125  	LfCharSet        byte
  3126  	LfOutPrecision   byte
  3127  	LfClipPrecision  byte
  3128  	LfQuality        byte
  3129  	LfPitchAndFamily byte
  3130  	LfFaceName       [LF_FACESIZE]WCHAR
  3131  }
  3132  type LOGPALETTE struct {
  3133  	PalVersion    WORD
  3134  	PalNumEntries WORD
  3135  	PalPalEntry   [1]PALETTEENTRY
  3136  }
  3137  type LOGPEN struct {
  3138  	LopnStyle UINT
  3139  	LopnWidth POINT
  3140  	LopnColor COLORREF
  3141  }
  3142  type LONG int32
  3143  type LONG64 int64
  3144  type LONGLONG int64
  3145  type LONG_PTR *int32
  3146  type LPAFPROTOCOLS *AFPROTOCOLS
  3147  type LPARAM uintptr
  3148  type LPBC *IBindCtx
  3149  type tagBLOB struct {
  3150  	CbSize    ULONG
  3151  	PBlobData *BYTE
  3152  }
  3153  type LPBLOB *tagBLOB
  3154  type LPBROWSEINFO *BROWSEINFO
  3155  type LPBYTE *byte
  3156  type LPCFHOOKPROC func(unnamed0 HWND, unnamed1 UINT, unnamed2 WPARAM, unnamed3 LPARAM) UINT_PTR
  3157  type LPCHOOSEFONT *CHOOSEFONT
  3158  type LPCITEMIDLIST *ITEMIDLIST
  3159  type LPCOLESTR *OLECHAR
  3160  type LPCONDITIONPROC func(lpCallerId LPWSABUF, lpCallerData LPWSABUF, lpSQOS LPQOS, lpGQOS LPQOS, lpCalleeId LPWSABUF, lpCalleeData LPWSABUF, g *GROUP, dwCallbackData DWORD_PTR) int32
  3161  type LPCPINFO *CPINFO
  3162  type LPCPINFOEX *CPINFOEX
  3163  type LPCSADDR_INFO *CSADDR_INFO
  3164  type LPCSFV *CSFV
  3165  type LPCSTR *byte
  3166  type LPCWSTR *uint16
  3167  type LPDATAOBJECT *IDataObject
  3168  type LPDEVMODE *DEVMODE
  3169  type LPDISPATCH *IDispatch
  3170  type LPDROPSOURCE *IDropSource
  3171  type LPDROPTARGET *IDropTarget
  3172  type LPENUMFORMATETC *IEnumFORMATETC
  3173  type LPENUMOLEVERB *IEnumOLEVERB
  3174  type LPFINDREPLACE *FINDREPLACE
  3175  type LPFNADDPROPSHEETPAGE func(unnamed0 HPROPSHEETPAGE, unnamed1 LPARAM) BOOL
  3176  type LPFNDFMCALLBACK func(psf *IShellFolder, hwnd HWND, pdtobj *IDataObject, uMsg UINT, wParam WPARAM, lParam LPARAM) HRESULT
  3177  type LPFNVIEWCALLBACK func(psvOuter *IShellView, psf *IShellFolder, hwndMain HWND, uMsg UINT, wParam WPARAM, lParam LPARAM) HRESULT
  3178  type LPFRHOOKPROC func(unnamed0 HWND, unnamed1 UINT, unnamed2 WPARAM, unnamed3 LPARAM) UINT_PTR
  3179  type LPGCP_RESULTS *GCP_RESULTS
  3180  type LPGUID *GUID
  3181  type LPHELPINFO *HELPINFO
  3182  type LPIMEMENUITEMINFO *IMEMENUITEMINFO
  3183  type LPITEMIDLIST *ITEMIDLIST
  3184  type LPJOYCAPS *JOYCAPS
  3185  type LPJOYINFO *JOYINFO
  3186  type LPLOGCOLORSPACE *LOGCOLORSPACE
  3187  type LPLOGFONT *LOGFONT
  3188  type LPLOOKUPSERVICE_COMPLETION_ROUTINE func(dwError DWORD, dwBytes DWORD, lpOverlapped LPWSAOVERLAPPED)
  3189  type LPMALLOC *IMalloc
  3190  type LPMALLOCSPY *IMallocSpy
  3191  type LPMARSHAL *IMarshal
  3192  type LPMESSAGEFILTER *IMessageFilter
  3193  type LPMIDIOUTCAPS *MIDIOUTCAPS
  3194  type LPMIXERCAPS *MIXERCAPS
  3195  type LPMIXERCONTROL *MIXERCONTROL
  3196  type LPMIXERLINE *MIXERLINE
  3197  type LPMIXERLINECONTROLS *MIXERLINECONTROLS
  3198  type LPMMCKINFO *MMCKINFO
  3199  type LPMMIOINFO *MMIOINFO
  3200  type LPMONIKER *IMoniker
  3201  type LPOFNHOOKPROC func(unnamed0 HWND, unnamed1 UINT, unnamed2 WPARAM, unnamed3 LPARAM) UINT_PTR
  3202  type LPOLECLIENTSITE *IOleClientSite
  3203  type LPOLEINPLACEACTIVEOBJECT *IOleInPlaceActiveObject
  3204  type LPOLEINPLACEFRAME *IOleInPlaceFrame
  3205  type LPOLEINPLACEFRAMEINFO *OLEINPLACEFRAMEINFO
  3206  type LPOLEMENUGROUPWIDTHS *OLEMENUGROUPWIDTHS
  3207  type LPOLEOBJECT *IOleObject
  3208  type LPOLESTR *OLECHAR
  3209  type _OLESTREAM struct {
  3210  	lpVtbl uintptr
  3211  }
  3212  type LPOLESTREAM *_OLESTREAM
  3213  type LPOPENFILENAME *OPENFILENAME
  3214  type LPOUTLINETEXTMETRIC *OUTLINETEXTMETRIC
  3215  type LPPAGEPAINTHOOK func(unnamed0 HWND, unnamed1 UINT, unnamed2 WPARAM, unnamed3 LPARAM) UINT_PTR
  3216  type LPPAGESETUPDLG *PAGESETUPDLG
  3217  type LPPAGESETUPHOOK func(unnamed0 HWND, unnamed1 UINT, unnamed2 WPARAM, unnamed3 LPARAM) UINT_PTR
  3218  type LPPERSISTSTORAGE *IPersistStorage
  3219  type LPPRINTDLG *PRINTDLG
  3220  type LPPRINTDLGEX *PRINTDLGEX
  3221  type LPPRINTHOOKPROC func(unnamed0 HWND, unnamed1 UINT, unnamed2 WPARAM, unnamed3 LPARAM) UINT_PTR
  3222  type LPPRINTPAGERANGE *PRINTPAGERANGE
  3223  type LPQOS *QOS
  3224  type LPRASTERIZER_STATUS *RASTERIZER_STATUS
  3225  type LPRECT *RECT
  3226  type LPRUNNINGOBJECTTABLE *IRunningObjectTable
  3227  type LPSAFEARRAY *SAFEARRAY
  3228  type LPSETUPHOOKPROC func(unnamed0 HWND, unnamed1 UINT, unnamed2 WPARAM, unnamed3 LPARAM) UINT_PTR
  3229  type LPSHELLFLAGSTATE *SHELLFLAGSTATE
  3230  type LPSHELLFOLDER *IShellFolder
  3231  type LPSHELLSTATE *SHELLSTATE
  3232  type LPSHFILEOPSTRUCT *SHFILEOPSTRUCT
  3233  type LPSHQUERYRBINFO *SHQUERYRBINFO
  3234  type LPSOCKADDR *SOCKADDR
  3235  type LPSTORAGE *IStorage
  3236  type LPSTR *CHAR
  3237  type LPSTREAM *IStream
  3238  type LPSTYLEBUF *STYLEBUF
  3239  type LPTEXTMETRIC *TEXTMETRIC
  3240  type LPTIMECAPS *TIMECAPS
  3241  type LPUNKNOWN *IUnknown
  3242  type LPVERSIONEDSTREAM *VERSIONEDSTREAM
  3243  type LPVOID uintptr
  3244  type LPWAVEHDR *WAVEHDR
  3245  type LPWAVEINCAPS *WAVEINCAPS
  3246  type LPWAVEOUTCAPS *WAVEOUTCAPS
  3247  type LPWPUPOSTMESSAGE func(unnamed0 HWND, unnamed1 UINT, unnamed2 WPARAM, unnamed3 LPARAM) BOOL
  3248  type LPWSABUF *WSABUF
  3249  type LPWSANAMESPACE_INFO *WSANAMESPACE_INFO
  3250  type LPWSANSCLASSINFO *WSANSCLASSINFO
  3251  type LPWSAOVERLAPPED *OVERLAPPED
  3252  type LPWSAOVERLAPPED_COMPLETION_ROUTINE func(dwError DWORD, cbTransferred DWORD, lpOverlapped LPWSAOVERLAPPED, dwFlags DWORD)
  3253  type LPWSAPROTOCOL_INFO *WSAPROTOCOL_INFO
  3254  type LPWSAQUERYSET *WSAQUERYSET
  3255  type LPWSASERVICECLASSINFO *WSASERVICECLASSINFO
  3256  type LPWSAVERSION *WSAVERSION
  3257  type LPWSTR *uint16
  3258  type LRESULT uintptr
  3259  type LUID struct {
  3260  	LowPart  uint32
  3261  	HighPart int32
  3262  }
  3263  type LUID_AND_ATTRIBUTES struct {
  3264  	Luid       LUID
  3265  	Attributes ULONG
  3266  }
  3267  type MALLOC_FREE_STRUCT struct {
  3268  	PfnAllocate uintptr // void* (__RPC_USER *pfnAllocate)(size_t)
  3269  	PfnFree     uintptr // void (__RPC_USER *pfnFree)(void *)
  3270  }
  3271  type MARGINS struct {
  3272  	CxLeftWidth    int32
  3273  	CxRightWidth   int32
  3274  	CyTopHeight    int32
  3275  	CyBottomHeight int32
  3276  }
  3277  type MAT2 struct {
  3278  	EM11 FIXED
  3279  	EM12 FIXED
  3280  	EM21 FIXED
  3281  	EM22 FIXED
  3282  }
  3283  type MCIDEVICEID UINT
  3284  type MCIERROR DWORD
  3285  type MENUBARINFO struct {
  3286  	CbSize          uint32
  3287  	RcBar           RECT
  3288  	HMenu           HMENU
  3289  	HwndMenu        HWND
  3290  	bitfieldedFlags uint32
  3291  	// BOOL fBarFocused:1;
  3292  	// BOOL fFocused:1;
  3293  }
  3294  
  3295  func (i *MENUBARINFO) FBarFocused() bool {
  3296  	return (i.bitfieldedFlags & 1) == 1
  3297  }
  3298  func (i *MENUBARINFO) FFocused() bool {
  3299  	return (i.bitfieldedFlags & 2) == 2
  3300  }
  3301  
  3302  type MENUINFO struct {
  3303  	CbSize          uint32
  3304  	FMask           uint32
  3305  	DwStyle         uint32
  3306  	CyMax           uint32
  3307  	HbrBack         HBRUSH
  3308  	DwContextHelpID uint32
  3309  	DwMenuData      uintptr
  3310  }
  3311  type MENUITEMINFO struct {
  3312  	CbSize        uint32
  3313  	FMask         uint32
  3314  	FType         uint32
  3315  	FState        uint32
  3316  	WID           uint32
  3317  	HSubMenu      HMENU
  3318  	HbmpChecked   HBITMAP
  3319  	HbmpUnchecked HBITMAP
  3320  	DwItemData    uintptr
  3321  	DwTypeData    *uint16
  3322  	Cch           uint32
  3323  	HbmpItem      HBITMAP
  3324  }
  3325  type METAFILEPICT struct {
  3326  	Mm   LONG
  3327  	XExt LONG
  3328  	YExt LONG
  3329  	HMF  HMETAFILE
  3330  }
  3331  type METARECORD struct {
  3332  	RdSize     DWORD
  3333  	RdFunction WORD
  3334  	RdParm     [1]WORD
  3335  }
  3336  type METHODDATA struct {
  3337  	SzName   *OLECHAR
  3338  	Ppdata   *PARAMDATA
  3339  	Dispid   DISPID
  3340  	IMeth    UINT
  3341  	Cc       CALLCONV
  3342  	CArgs    UINT
  3343  	WFlags   WORD
  3344  	VtReturn VARTYPE
  3345  }
  3346  type MFENUMPROC func(hdc HDC, lpht *HANDLETABLE, lpMR *METARECORD, nObj int32, param LPARAM) int32
  3347  type MIBICMPINFO struct {
  3348  	IcmpInStats  MIBICMPSTATS
  3349  	IcmpOutStats MIBICMPSTATS
  3350  }
  3351  type MIBICMPSTATS struct {
  3352  	DwMsgs          DWORD
  3353  	DwErrors        DWORD
  3354  	DwDestUnreachs  DWORD
  3355  	DwTimeExcds     DWORD
  3356  	DwParmProbs     DWORD
  3357  	DwSrcQuenchs    DWORD
  3358  	DwRedirects     DWORD
  3359  	DwEchos         DWORD
  3360  	DwEchoReps      DWORD
  3361  	DwTimestamps    DWORD
  3362  	DwTimestampReps DWORD
  3363  	DwAddrMasks     DWORD
  3364  	DwAddrMaskReps  DWORD
  3365  }
  3366  type MIBICMPSTATS_EX MIBICMPSTATS_EX_XPSP1
  3367  type MIBICMPSTATS_EX_XPSP1 struct {
  3368  	DwMsgs        DWORD
  3369  	DwErrors      DWORD
  3370  	RgdwTypeCount [256]DWORD
  3371  }
  3372  type MIB_ICMP struct {
  3373  	Stats MIBICMPINFO
  3374  }
  3375  type MIB_ICMP_EX_XPSP1 struct {
  3376  	IcmpInStats  MIBICMPSTATS_EX
  3377  	IcmpOutStats MIBICMPSTATS_EX
  3378  }
  3379  type MIB_IFROW struct {
  3380  	WszName           [MAX_INTERFACE_NAME_LEN]WCHAR
  3381  	DwIndex           IF_INDEX
  3382  	DwType            IFTYPE
  3383  	DwMtu             DWORD
  3384  	DwSpeed           DWORD
  3385  	DwPhysAddrLen     DWORD
  3386  	BPhysAddr         [MAXLEN_PHYSADDR]UCHAR
  3387  	DwAdminStatus     DWORD
  3388  	DwOperStatus      INTERNAL_IF_OPER_STATUS
  3389  	DwLastChange      DWORD
  3390  	DwInOctets        DWORD
  3391  	DwInUcastPkts     DWORD
  3392  	DwInNUcastPkts    DWORD
  3393  	DwInDiscards      DWORD
  3394  	DwInErrors        DWORD
  3395  	DwInUnknownProtos DWORD
  3396  	DwOutOctets       DWORD
  3397  	DwOutUcastPkts    DWORD
  3398  	DwOutNUcastPkts   DWORD
  3399  	DwOutDiscards     DWORD
  3400  	DwOutErrors       DWORD
  3401  	DwOutQLen         DWORD
  3402  	DwDescrLen        DWORD
  3403  	BDescr            [MAXLEN_IFDESCR]UCHAR
  3404  }
  3405  type MIB_IFTABLE struct {
  3406  	DwNumEntries DWORD
  3407  	Table        [ANY_SIZE]MIB_IFROW
  3408  }
  3409  type MIB_IF_ROW2 struct {
  3410  	InterfaceLuid               NET_LUID
  3411  	InterfaceIndex              NET_IFINDEX
  3412  	InterfaceGuid               GUID
  3413  	Alias                       [IF_MAX_STRING_SIZE + 1]WCHAR
  3414  	Description                 [IF_MAX_STRING_SIZE + 1]WCHAR
  3415  	PhysicalAddressLength       ULONG
  3416  	PhysicalAddress             [IF_MAX_PHYS_ADDRESS_LENGTH]UCHAR
  3417  	PermanentPhysicalAddress    [IF_MAX_PHYS_ADDRESS_LENGTH]UCHAR
  3418  	Mtu                         ULONG
  3419  	Type                        IFTYPE
  3420  	TunnelType                  TUNNEL_TYPE
  3421  	MediaType                   NDIS_MEDIUM
  3422  	PhysicalMediumType          NDIS_PHYSICAL_MEDIUM
  3423  	AccessType                  NET_IF_ACCESS_TYPE
  3424  	DirectionType               NET_IF_DIRECTION_TYPE
  3425  	InterfaceAndOperStatusFlags BOOLEAN
  3426  	OperStatus                  IF_OPER_STATUS
  3427  	AdminStatus                 NET_IF_ADMIN_STATUS
  3428  	MediaConnectState           NET_IF_MEDIA_CONNECT_STATE
  3429  	NetworkGuid                 NET_IF_NETWORK_GUID
  3430  	ConnectionType              NET_IF_CONNECTION_TYPE
  3431  	padding1                    [pad0for64_4for32]byte
  3432  	TransmitLinkSpeed           ULONG64
  3433  	ReceiveLinkSpeed            ULONG64
  3434  	InOctets                    ULONG64
  3435  	InUcastPkts                 ULONG64
  3436  	InNUcastPkts                ULONG64
  3437  	InDiscards                  ULONG64
  3438  	InErrors                    ULONG64
  3439  	InUnknownProtos             ULONG64
  3440  	InUcastOctets               ULONG64
  3441  	InMulticastOctets           ULONG64
  3442  	InBroadcastOctets           ULONG64
  3443  	OutOctets                   ULONG64
  3444  	OutUcastPkts                ULONG64
  3445  	OutNUcastPkts               ULONG64
  3446  	OutDiscards                 ULONG64
  3447  	OutErrors                   ULONG64
  3448  	OutUcastOctets              ULONG64
  3449  	OutMulticastOctets          ULONG64
  3450  	OutBroadcastOctets          ULONG64
  3451  	OutQLen                     ULONG64
  3452  }
  3453  
  3454  func (this *MIB_IF_ROW2) HardwareInterface() BOOLEAN {
  3455  	return BOOLEAN(this.InterfaceAndOperStatusFlags & 0x1)
  3456  }
  3457  func (this *MIB_IF_ROW2) FilterInterface() BOOLEAN {
  3458  	return BOOLEAN((this.InterfaceAndOperStatusFlags >> 1) & 0x1)
  3459  }
  3460  func (this *MIB_IF_ROW2) ConnectorPresent() BOOLEAN {
  3461  	return BOOLEAN((this.InterfaceAndOperStatusFlags >> 2) & 0x1)
  3462  }
  3463  func (this *MIB_IF_ROW2) NotAuthenticated() BOOLEAN {
  3464  	return BOOLEAN((this.InterfaceAndOperStatusFlags >> 3) & 0x1)
  3465  }
  3466  func (this *MIB_IF_ROW2) NotMediaConnected() BOOLEAN {
  3467  	return BOOLEAN((this.InterfaceAndOperStatusFlags >> 4) & 0x1)
  3468  }
  3469  func (this *MIB_IF_ROW2) Paused() BOOLEAN {
  3470  	return BOOLEAN((this.InterfaceAndOperStatusFlags >> 5) & 0x1)
  3471  }
  3472  func (this *MIB_IF_ROW2) LowPower() BOOLEAN {
  3473  	return BOOLEAN((this.InterfaceAndOperStatusFlags >> 6) & 0x1)
  3474  }
  3475  func (this *MIB_IF_ROW2) EndPointInterface() BOOLEAN {
  3476  	return BOOLEAN((this.InterfaceAndOperStatusFlags >> 7) & 0x1)
  3477  }
  3478  
  3479  type MIB_IF_TABLE2 struct {
  3480  	NumEntries ULONG
  3481  	padding1   [pad0for64_4for32]byte
  3482  	Table      [ANY_SIZE]MIB_IF_ROW2
  3483  }
  3484  type MIB_IPADDRROW MIB_IPADDRROW_XP
  3485  type MIB_IPADDRROW_XP struct {
  3486  	DwAddr      DWORD
  3487  	DwIndex     IF_INDEX
  3488  	DwMask      DWORD
  3489  	DwBCastAddr DWORD
  3490  	DwReasmSize DWORD
  3491  	Unused1     uint16
  3492  	WType       uint16
  3493  }
  3494  type MIB_IPADDRTABLE struct {
  3495  	DwNumEntries DWORD
  3496  	Table        [ANY_SIZE]MIB_IPADDRROW
  3497  }
  3498  type MIB_IPFORWARDROW struct {
  3499  	DwForwardDest      DWORD
  3500  	DwForwardMask      DWORD
  3501  	DwForwardPolicy    DWORD
  3502  	DwForwardNextHop   DWORD
  3503  	DwForwardIfIndex   IF_INDEX
  3504  	ForwardType        MIB_IPFORWARD_TYPE
  3505  	ForwardProto       MIB_IPFORWARD_PROTO
  3506  	DwForwardAge       DWORD
  3507  	DwForwardNextHopAS DWORD
  3508  	DwForwardMetric1   DWORD
  3509  	DwForwardMetric2   DWORD
  3510  	DwForwardMetric3   DWORD
  3511  	DwForwardMetric4   DWORD
  3512  	DwForwardMetric5   DWORD
  3513  }
  3514  type MIB_IPFORWARDTABLE struct {
  3515  	DwNumEntries DWORD
  3516  	Table        [ANY_SIZE]MIB_IPFORWARDROW
  3517  }
  3518  type MIB_IPFORWARD_PROTO NL_ROUTE_PROTOCOL
  3519  type MIB_IPNETROW MIB_IPNETROW_LH
  3520  type MIB_IPNETROW_LH struct {
  3521  	DwIndex       IF_INDEX
  3522  	DwPhysAddrLen DWORD
  3523  	BPhysAddr     [MAXLEN_PHYSADDR]UCHAR
  3524  	DwAddr        DWORD
  3525  	Type          MIB_IPNET_TYPE
  3526  }
  3527  type MIB_IPNETTABLE struct {
  3528  	DwNumEntries DWORD
  3529  	Table        [ANY_SIZE]MIB_IPNETROW
  3530  }
  3531  type MIB_IPSTATS_LH struct {
  3532  	Forwarding        MIB_IPSTATS_FORWARDING
  3533  	DwDefaultTTL      DWORD
  3534  	DwInReceives      DWORD
  3535  	DwInHdrErrors     DWORD
  3536  	DwInAddrErrors    DWORD
  3537  	DwForwDatagrams   DWORD
  3538  	DwInUnknownProtos DWORD
  3539  	DwInDiscards      DWORD
  3540  	DwInDelivers      DWORD
  3541  	DwOutRequests     DWORD
  3542  	DwRoutingDiscards DWORD
  3543  	DwOutDiscards     DWORD
  3544  	DwOutNoRoutes     DWORD
  3545  	DwReasmTimeout    DWORD
  3546  	DwReasmReqds      DWORD
  3547  	DwReasmOks        DWORD
  3548  	DwReasmFails      DWORD
  3549  	DwFragOks         DWORD
  3550  	DwFragFails       DWORD
  3551  	DwFragCreates     DWORD
  3552  	DwNumIf           DWORD
  3553  	DwNumAddr         DWORD
  3554  	DwNumRoutes       DWORD
  3555  }
  3556  type MIB_TCP6ROW struct {
  3557  	State           MIB_TCP_STATE
  3558  	LocalAddr       IN6_ADDR
  3559  	DwLocalScopeId  DWORD
  3560  	DwLocalPort     DWORD
  3561  	RemoteAddr      IN6_ADDR
  3562  	DwRemoteScopeId DWORD
  3563  	DwRemotePort    DWORD
  3564  }
  3565  type MIB_TCP6ROW2 struct {
  3566  	LocalAddr       IN6_ADDR
  3567  	DwLocalScopeId  DWORD
  3568  	DwLocalPort     DWORD
  3569  	RemoteAddr      IN6_ADDR
  3570  	DwRemoteScopeId DWORD
  3571  	DwRemotePort    DWORD
  3572  	State           MIB_TCP_STATE
  3573  	DwOwningPid     DWORD
  3574  	DwOffloadState  TCP_CONNECTION_OFFLOAD_STATE
  3575  }
  3576  type MIB_TCP6ROW_OWNER_MODULE struct {
  3577  	UcLocalAddr       [16]UCHAR
  3578  	DwLocalScopeId    DWORD
  3579  	DwLocalPort       DWORD
  3580  	UcRemoteAddr      [16]UCHAR
  3581  	DwRemoteScopeId   DWORD
  3582  	DwRemotePort      DWORD
  3583  	DwState           DWORD
  3584  	DwOwningPid       DWORD
  3585  	LiCreateTimestamp LARGE_INTEGER
  3586  	OwningModuleInfo  [TCPIP_OWNING_MODULE_SIZE]ULONGLONG
  3587  }
  3588  type MIB_TCP6TABLE struct {
  3589  	DwNumEntries DWORD
  3590  	Table        [ANY_SIZE]MIB_TCP6ROW
  3591  }
  3592  type MIB_TCP6TABLE2 struct {
  3593  	DwNumEntries DWORD
  3594  	Table        [ANY_SIZE]MIB_TCP6ROW2
  3595  }
  3596  type MIB_TCPROW MIB_TCPROW_LH
  3597  type MIB_TCPROW2 struct {
  3598  	DwState        DWORD
  3599  	DwLocalAddr    DWORD
  3600  	DwLocalPort    DWORD
  3601  	DwRemoteAddr   DWORD
  3602  	DwRemotePort   DWORD
  3603  	DwOwningPid    DWORD
  3604  	DwOffloadState TCP_CONNECTION_OFFLOAD_STATE
  3605  }
  3606  type MIB_TCPROW_LH struct {
  3607  	State        MIB_TCP_STATE
  3608  	DwLocalAddr  DWORD
  3609  	DwLocalPort  DWORD
  3610  	DwRemoteAddr DWORD
  3611  	DwRemotePort DWORD
  3612  }
  3613  type MIB_TCPROW_OWNER_MODULE struct {
  3614  	DwState           DWORD
  3615  	DwLocalAddr       DWORD
  3616  	DwLocalPort       DWORD
  3617  	DwRemoteAddr      DWORD
  3618  	DwRemotePort      DWORD
  3619  	DwOwningPid       DWORD
  3620  	LiCreateTimestamp LARGE_INTEGER
  3621  	OwningModuleInfo  [TCPIP_OWNING_MODULE_SIZE]ULONGLONG
  3622  }
  3623  type MIB_TCPSTATS_LH struct {
  3624  	storage1       DWORD
  3625  	DwRtoMin       DWORD
  3626  	DwRtoMax       DWORD
  3627  	DwMaxConn      DWORD
  3628  	DwActiveOpens  DWORD
  3629  	DwPassiveOpens DWORD
  3630  	DwAttemptFails DWORD
  3631  	DwEstabResets  DWORD
  3632  	DwCurrEstab    DWORD
  3633  	DwInSegs       DWORD
  3634  	DwOutSegs      DWORD
  3635  	DwRetransSegs  DWORD
  3636  	DwInErrs       DWORD
  3637  	DwOutRsts      DWORD
  3638  	DwNumConns     DWORD
  3639  }
  3640  
  3641  func (this *MIB_TCPSTATS_LH) DwRtoAlgorithm() *DWORD {
  3642  	return (*DWORD)(unsafe.Pointer(&this.storage1))
  3643  }
  3644  func (this *MIB_TCPSTATS_LH) RtoAlgorithm() *TCP_RTO_ALGORITHM {
  3645  	return (*TCP_RTO_ALGORITHM)(unsafe.Pointer(&this.storage1))
  3646  }
  3647  
  3648  type MIB_TCPTABLE struct {
  3649  	DwNumEntries DWORD
  3650  	Table        [ANY_SIZE]MIB_TCPROW
  3651  }
  3652  type MIB_TCPTABLE2 struct {
  3653  	DwNumEntries DWORD
  3654  	Table        [ANY_SIZE]MIB_TCPROW2
  3655  }
  3656  type MIB_UDP6ROW struct {
  3657  	DwLocalAddr    IN6_ADDR
  3658  	DwLocalScopeId DWORD
  3659  	DwLocalPort    DWORD
  3660  }
  3661  type MIB_UDP6ROW_OWNER_MODULE struct {
  3662  	UcLocalAddr       [16]UCHAR
  3663  	DwLocalScopeId    DWORD
  3664  	DwLocalPort       DWORD
  3665  	DwOwningPid       DWORD
  3666  	padding1          [pad0for64_4for32]byte
  3667  	LiCreateTimestamp LARGE_INTEGER
  3668  	dwFlags           int32
  3669  	padding2          [pad0for64_4for32]byte
  3670  	OwningModuleInfo  [TCPIP_OWNING_MODULE_SIZE]ULONGLONG
  3671  }
  3672  
  3673  func (this *MIB_UDP6ROW_OWNER_MODULE) DwFlags() *int32 {
  3674  	return &this.dwFlags
  3675  }
  3676  func (this *MIB_UDP6ROW_OWNER_MODULE) SpecificPortBind() int32 {
  3677  	return this.dwFlags & 0x1
  3678  }
  3679  
  3680  type MIB_UDP6TABLE struct {
  3681  	DwNumEntries DWORD
  3682  	Table        [ANY_SIZE]MIB_UDP6ROW
  3683  }
  3684  type MIB_UDPROW struct {
  3685  	DwLocalAddr DWORD
  3686  	DwLocalPort DWORD
  3687  }
  3688  type MIB_UDPROW_OWNER_MODULE struct {
  3689  	DwLocalAddr       DWORD
  3690  	DwLocalPort       DWORD
  3691  	DwOwningPid       DWORD
  3692  	padding1          [pad0for64_4for32]byte
  3693  	LiCreateTimestamp LARGE_INTEGER
  3694  	dwFlags           int32
  3695  	padding2          [pad0for64_4for32]byte
  3696  	OwningModuleInfo  [TCPIP_OWNING_MODULE_SIZE]ULONGLONG
  3697  }
  3698  
  3699  func (this *MIB_UDPROW_OWNER_MODULE) DwFlags() *int32 {
  3700  	return &this.dwFlags
  3701  }
  3702  func (this *MIB_UDPROW_OWNER_MODULE) SpecificPortBind() int32 {
  3703  	return this.dwFlags & 0x1
  3704  }
  3705  
  3706  type MIB_UDPSTATS struct {
  3707  	DwInDatagrams  DWORD
  3708  	DwNoPorts      DWORD
  3709  	DwInErrors     DWORD
  3710  	DwOutDatagrams DWORD
  3711  	DwNumAddrs     DWORD
  3712  }
  3713  type MIB_UDPTABLE struct {
  3714  	DwNumEntries DWORD
  3715  	Table        [ANY_SIZE]MIB_UDPROW
  3716  }
  3717  type MIDIINCAPS struct {
  3718  	WMid           WORD
  3719  	WPid           WORD
  3720  	VDriverVersion MMVERSION
  3721  	SzPname        [MAXPNAMELEN]WCHAR
  3722  	DwSupport      DWORD
  3723  }
  3724  type MIDIOUTCAPS struct {
  3725  	WMid           WORD
  3726  	WPid           WORD
  3727  	VDriverVersion MMVERSION
  3728  	SzPname        [MAXPNAMELEN]WCHAR
  3729  	WTechnology    WORD
  3730  	WVoices        WORD
  3731  	WNotes         WORD
  3732  	WChannelMask   WORD
  3733  	DwSupport      DWORD
  3734  }
  3735  type MIDL_STUB_DESC struct {
  3736  	RpcInterfaceInformation     uintptr
  3737  	PfnAllocate                 uintptr // void* (__RPC_API *pfnAllocate)(size_t)
  3738  	PfnFree                     uintptr // void (__RPC_API *pfnFree)(void *)
  3739  	IMPLICIT_HANDLE_INFO        MIDL_STUB_DESC__IMPLICIT_HANDLE_INFO
  3740  	ApfnNdrRundownRoutines      uintptr // const NDR_RUNDOWN*
  3741  	AGenericBindingRoutinePairs uintptr // const GENERIC_BINDING_ROUTINE_PAIR*
  3742  	ApfnExprEval                uintptr // const EXPR_EVAL*
  3743  	AXmitQuintuple              uintptr // const XMIT_ROUTINE_QUINTUPLE*
  3744  	PFormatTypes/*const*/ *byte
  3745  	FCheckBounds      int32
  3746  	Version           uint32
  3747  	PMallocFreeStruct uintptr // MALLOC_FREE_STRUCT*
  3748  	MIDLVersion       int32
  3749  	CommFaultOffsets/*const*/ *COMM_FAULT_OFFSETS
  3750  	AUserMarshalQuadruple uintptr // const USER_MARSHAL_ROUTINE_QUADRUPLE*
  3751  	NotifyRoutineTable    uintptr // const NDR_NOTIFY_ROUTINE*
  3752  	MFlags                ULONG_PTR
  3753  	CsRoutineTables/*const*/ *NDR_CS_ROUTINES
  3754  	ProxyServerInfo uintptr
  3755  	PExprInfo/*const*/ *NDR_EXPR_DESC
  3756  }
  3757  type MIDL_STUB_DESC__IMPLICIT_HANDLE_INFO struct {
  3758  	storage uintptr
  3759  }
  3760  
  3761  func (this *MIDL_STUB_DESC__IMPLICIT_HANDLE_INFO) PAutoHandle() *Handle_t {
  3762  	return (*Handle_t)(unsafe.Pointer(&this.storage))
  3763  }
  3764  func (this *MIDL_STUB_DESC__IMPLICIT_HANDLE_INFO) PPrimitiveHandle() *Handle_t {
  3765  	return (*Handle_t)(unsafe.Pointer(&this.storage))
  3766  }
  3767  func (this *MIDL_STUB_DESC__IMPLICIT_HANDLE_INFO) PGenericBindingInfo() *PGENERIC_BINDING_INFO {
  3768  	return (*PGENERIC_BINDING_INFO)(unsafe.Pointer(&this.storage))
  3769  }
  3770  
  3771  type MIDL_STUB_MESSAGE struct {
  3772  	RpcMsg                 PRPC_MESSAGE
  3773  	Buffer                 *byte
  3774  	BufferStart            *byte
  3775  	BufferEnd              *byte
  3776  	BufferMark             *byte
  3777  	BufferLength           uint32
  3778  	MemorySize             uint32
  3779  	Memory                 *byte
  3780  	IsClient               byte
  3781  	Pad                    byte
  3782  	UFlags2                uint16
  3783  	ReuseBuffer            int32
  3784  	PAllocAllNodesContext  uintptr // struct NDR_ALLOC_ALL_NODES_CONTEXT*
  3785  	PPointerQueueState     uintptr // struct NDR_POINTER_QUEUE_STATE*
  3786  	IgnoreEmbeddedPointers int32
  3787  	PointerBufferMark      *byte
  3788  	CorrDespIncrement      byte
  3789  	uFlags                 byte
  3790  	UniquePtrCount         uint16
  3791  	MaxCount               ULONG_PTR
  3792  	Offset                 uint32
  3793  	ActualCount            uint32
  3794  	PfnAllocate            uintptr // void*(__RPC_API *pfnAllocate)(size_t)
  3795  	PfnFree                uintptr // void(__RPC_API *pfnFree)(void*)
  3796  	StackTop               *byte
  3797  	PPresentedType         *byte
  3798  	PTransmitType          *byte
  3799  	SavedHandle            Handle_t
  3800  	StubDesc/*const*/ *MIDL_STUB_DESC
  3801  	FullPtrXlatTables *FULL_PTR_XLAT_TABLES
  3802  	FullPtrRefId      uint32
  3803  	PointerLength     uint32
  3804  	fBitField32       uint32
  3805  	/*
  3806  	   int                             fInDontFree       :1;
  3807  	   int                             fDontCallFreeInst :1;
  3808  	   int                             fInOnlyParam      :1;
  3809  	   int                             fHasReturn        :1;
  3810  	   int                             fHasExtensions    :1;
  3811  	   int                             fHasNewCorrDesc   :1;
  3812  	   int                             fIsIn             :1;
  3813  	   int                             fIsOut            :1;
  3814  	   int                             fIsOicf           :1;
  3815  	   int                             fBufferValid      :1;
  3816  	   int                             fHasMemoryValidateCallback: 1;
  3817  	   int                             fInFree             :1;
  3818  	   int                             fNeedMCCP         :1;
  3819  	   int                             fUnused           :3;
  3820  	   int                             fUnused2          :16;
  3821  	*/
  3822  	DwDestContext       uint32
  3823  	PvDestContext       uintptr
  3824  	SavedContextHandles *NDR_SCONTEXT
  3825  	ParamNumber         int32
  3826  	PRpcChannelBuffer   *IRpcChannelBuffer
  3827  	PArrayInfo          PARRAY_INFO
  3828  	SizePtrCountArray   *uint32
  3829  	SizePtrOffsetArray  *uint32
  3830  	SizePtrLengthArray  *uint32
  3831  	PArgQueue           uintptr
  3832  	DwStubPhase         uint32
  3833  	LowStackMark        uintptr
  3834  	PAsyncMsg           uintptr // PNDR_ASYNC_MESSAGE
  3835  	PCorrInfo           uintptr // PNDR_CORRELATION_INFO
  3836  	PCorrMemory         *byte
  3837  	PMemoryList         uintptr
  3838  	PCSInfo             INT_PTR
  3839  	ConformanceMark     *byte
  3840  	VarianceMark        *byte
  3841  	Unused              INT_PTR
  3842  	PContext            uintptr // struct _NDR_PROC_CONTEXT*
  3843  	ContextHandleHash   uintptr
  3844  	PUserMarshalList    uintptr
  3845  	Reserved51_3        INT_PTR
  3846  	Reserved51_4        INT_PTR
  3847  	Reserved51_5        INT_PTR
  3848  }
  3849  type MIX ULONG
  3850  type MIXERCAPS struct {
  3851  	WMid           WORD
  3852  	WPid           WORD
  3853  	VDriverVersion MMVERSION
  3854  	SzPname        [MAXPNAMELEN]WCHAR
  3855  	FdwSupport     DWORD
  3856  	CDestinations  DWORD
  3857  }
  3858  type MIXERCONTROL struct {
  3859  	cbStruct       DWORD
  3860  	dwControlID    DWORD
  3861  	dwControlType  DWORD
  3862  	fdwControl     DWORD
  3863  	cMultipleItems DWORD
  3864  	szShortName    [MIXER_SHORT_NAME_CHARS]WCHAR
  3865  	szName         [MIXER_LONG_NAME_CHARS]WCHAR
  3866  	Bounds         MIXERLINECONTROL_Bounds
  3867  	Metrics        MIXERLINECONTROL_Metrics
  3868  }
  3869  type MIXERLINECONTROL_Bounds struct {
  3870  	storage [24]byte
  3871  }
  3872  
  3873  func (this *MIXERLINECONTROL_Bounds) DwReserved() *[6]DWORD {
  3874  	return (*[6]DWORD)(unsafe.Pointer(&this.storage[0]))
  3875  }
  3876  func (this *MIXERLINECONTROL_Bounds) LMinimum() *LONG {
  3877  	return (*LONG)(unsafe.Pointer(&this.storage[0]))
  3878  }
  3879  func (this *MIXERLINECONTROL_Bounds) LMaximum() *LONG {
  3880  	return (*LONG)(unsafe.Pointer(&this.storage[4]))
  3881  }
  3882  func (this *MIXERLINECONTROL_Bounds) DwMinimum() *DWORD {
  3883  	return (*DWORD)(unsafe.Pointer(&this.storage[0]))
  3884  }
  3885  func (this *MIXERLINECONTROL_Bounds) DwMaximum() *DWORD {
  3886  	return (*DWORD)(unsafe.Pointer(&this.storage[4]))
  3887  }
  3888  
  3889  type MIXERLINECONTROL_Metrics struct {
  3890  	storage [24]byte
  3891  }
  3892  
  3893  func (this *MIXERLINECONTROL_Metrics) CSteps() *DWORD {
  3894  	return (*DWORD)(unsafe.Pointer(&this.storage[0]))
  3895  }
  3896  func (this *MIXERLINECONTROL_Metrics) CbCustomData() *DWORD {
  3897  	return (*DWORD)(unsafe.Pointer(&this.storage[0]))
  3898  }
  3899  func (this *MIXERLINECONTROL_Metrics) DwReserved() *[6]DWORD {
  3900  	return (*[6]DWORD)(unsafe.Pointer(&this.storage[0]))
  3901  }
  3902  
  3903  type MIXERCONTROLDETAILS struct {
  3904  	CbStruct    DWORD
  3905  	DwControlID DWORD
  3906  	CChannels   DWORD
  3907  	storage1    [4]byte
  3908  	pad1        [pad4for64_0for32]byte
  3909  	CbDetails   DWORD
  3910  	PaDetails   LPVOID
  3911  }
  3912  
  3913  func (this *MIXERCONTROLDETAILS) HwndOwner() *HWND {
  3914  	return (*HWND)(unsafe.Pointer(&this.storage1[0]))
  3915  }
  3916  func (this *MIXERCONTROLDETAILS) CMultipleItems() *DWORD {
  3917  	return (*DWORD)(unsafe.Pointer(&this.storage1[0]))
  3918  }
  3919  
  3920  type MIXERLINE struct {
  3921  	CbStruct      DWORD
  3922  	DwDestination DWORD
  3923  	DwSource      DWORD
  3924  	DwLineID      DWORD
  3925  	FdwLine       DWORD
  3926  	//	DwUser          DWORD_PTR
  3927  	storage1        [4]byte
  3928  	storage2        [pad4for64_0for32]byte
  3929  	DwComponentType DWORD
  3930  	CChannels       DWORD
  3931  	CConnections    DWORD
  3932  	CControls       DWORD
  3933  	SzShortName     [MIXER_SHORT_NAME_CHARS]WCHAR
  3934  	SzName          [MIXER_LONG_NAME_CHARS]WCHAR
  3935  	Target          MIXERLINE_Target
  3936  }
  3937  type MIXERLINE_Target struct {
  3938  	DwType         DWORD
  3939  	DwDeviceID     DWORD
  3940  	WMid           WORD
  3941  	WPid           WORD
  3942  	VDriverVersion MMVERSION
  3943  	SzPname        [MAXPNAMELEN]WCHAR
  3944  }
  3945  
  3946  func (this *MIXERLINE) DwUser() *DWORD_PTR {
  3947  	return (*DWORD_PTR)(unsafe.Pointer(&this.storage1[0]))
  3948  }
  3949  func (this *MIXERLINECONTROLS) DwControlID() *DWORD {
  3950  	return (*DWORD)(unsafe.Pointer(&this.union1))
  3951  }
  3952  func (this *MIXERLINECONTROLS) DwControlType() *DWORD {
  3953  	return (*DWORD)(unsafe.Pointer(&this.union1))
  3954  }
  3955  func (this *MIXERLINECONTROLS) Pamxctrl() *LPMIXERCONTROL {
  3956  	return (*LPMIXERCONTROL)(unsafe.Pointer(&this.storage1[0]))
  3957  }
  3958  
  3959  type MMCKINFO struct {
  3960  	Ckid         FOURCC
  3961  	Cksize       DWORD
  3962  	FccType      FOURCC
  3963  	DwDataOffset DWORD
  3964  	DwFlags      DWORD
  3965  }
  3966  type MMIOINFO struct {
  3967  	storage [44 + ptrsize*7]byte
  3968  }
  3969  
  3970  func (this *MMIOINFO) DwFlags() *DWORD {
  3971  	return (*DWORD)(unsafe.Pointer(&this.storage[0]))
  3972  }
  3973  func (this *MMIOINFO) FccIOProc() *FOURCC {
  3974  	return (*FOURCC)(unsafe.Pointer(&this.storage[4]))
  3975  }
  3976  func (this *MMIOINFO) PIOProc() *uintptr {
  3977  	return (*uintptr)(unsafe.Pointer(&this.storage[8]))
  3978  }
  3979  func (this *MMIOINFO) WErrorRet() *UINT {
  3980  	return (*UINT)(unsafe.Pointer(&this.storage[8+ptrsize]))
  3981  }
  3982  func (this *MMIOINFO) Htask() *HTASK {
  3983  	return (*HTASK)(unsafe.Pointer(&this.storage[12+ptrsize]))
  3984  }
  3985  func (this *MMIOINFO) CchBuffer() *LONG {
  3986  	return (*LONG)(unsafe.Pointer(&this.storage[12+ptrsize*2]))
  3987  }
  3988  func (this *MMIOINFO) PchBuffer() *HPSTR {
  3989  	return (*HPSTR)(unsafe.Pointer(&this.storage[16+ptrsize*2]))
  3990  }
  3991  func (this *MMIOINFO) PchNext() *HPSTR {
  3992  	return (*HPSTR)(unsafe.Pointer(&this.storage[16+ptrsize*3]))
  3993  }
  3994  func (this *MMIOINFO) PchEndRead() *HPSTR {
  3995  	return (*HPSTR)(unsafe.Pointer(&this.storage[16+ptrsize*4]))
  3996  }
  3997  func (this *MMIOINFO) PchEndWrite() *HPSTR {
  3998  	return (*HPSTR)(unsafe.Pointer(&this.storage[16+ptrsize*5]))
  3999  }
  4000  func (this *MMIOINFO) LBufOffset() *LONG {
  4001  	return (*LONG)(unsafe.Pointer(&this.storage[16+ptrsize*6]))
  4002  }
  4003  func (this *MMIOINFO) LDiskOffset() *LONG {
  4004  	return (*LONG)(unsafe.Pointer(&this.storage[20+ptrsize*6]))
  4005  }
  4006  func (this *MMIOINFO) AdwInfo() *[3]DWORD {
  4007  	return (*[3]DWORD)(unsafe.Pointer(&this.storage[24+ptrsize*6]))
  4008  }
  4009  func (this *MMIOINFO) DwReserved1() *DWORD {
  4010  	return (*DWORD)(unsafe.Pointer(&this.storage[36+ptrsize*6]))
  4011  }
  4012  func (this *MMIOINFO) DwReserved2() *DWORD {
  4013  	return (*DWORD)(unsafe.Pointer(&this.storage[40+ptrsize*6]))
  4014  }
  4015  func (this *MMIOINFO) Hmmio() *HMMIO {
  4016  	return (*HMMIO)(unsafe.Pointer(&this.storage[44+ptrsize*6]))
  4017  }
  4018  
  4019  type MMIOPROC func(lpmmioinfo LPSTR, uMsg UINT, lParam1 LPARAM, lParam2 LPARAM) LRESULT
  4020  type MMRESULT uint32
  4021  type MMTIME struct {
  4022  	WType UINT
  4023  	U     MMTIME_U
  4024  }
  4025  type MMTIME_U struct {
  4026  	storage [8]byte
  4027  }
  4028  type MMTIME_Smpte struct {
  4029  	Hour  BYTE
  4030  	Min   BYTE
  4031  	Sec   BYTE
  4032  	Frame BYTE
  4033  	Fps   BYTE
  4034  	Dummy BYTE
  4035  	Pad   [2]BYTE
  4036  }
  4037  type MMTIME_Midi struct {
  4038  	Songptrpos DWORD
  4039  }
  4040  
  4041  func (this *MMTIME_U) Ms() *DWORD {
  4042  	return (*DWORD)(unsafe.Pointer(&this.storage[0]))
  4043  }
  4044  func (this *MMTIME_U) Sample() *DWORD {
  4045  	return (*DWORD)(unsafe.Pointer(&this.storage[0]))
  4046  }
  4047  func (this *MMTIME_U) Cb() *DWORD {
  4048  	return (*DWORD)(unsafe.Pointer(&this.storage[0]))
  4049  }
  4050  func (this *MMTIME_U) Ticks() *DWORD {
  4051  	return (*DWORD)(unsafe.Pointer(&this.storage[0]))
  4052  }
  4053  func (this *MMTIME_U) Smpte() *MMTIME_Smpte {
  4054  	return (*MMTIME_Smpte)(unsafe.Pointer(&this.storage[0]))
  4055  }
  4056  func (this *MMTIME_U) Midi() *MMTIME_Midi {
  4057  	return (*MMTIME_Midi)(unsafe.Pointer(&this.storage[0]))
  4058  }
  4059  
  4060  type MMVERSION UINT
  4061  type MODULEINFO struct {
  4062  	LpBaseOfDll LPVOID
  4063  	SizeOfImage DWORD
  4064  	EntryPoint  LPVOID
  4065  }
  4066  type MONITORENUMPROC func(hMonitor HMONITOR, hdcMonitor HDC, lprcMonitor *RECT, dwData uintptr) BOOL
  4067  type MONITORINFO struct {
  4068  	CbSize    uint32
  4069  	RcMonitor RECT
  4070  	RcWork    RECT
  4071  	DwFlags   uint32
  4072  }
  4073  type MOUSEINPUT struct {
  4074  	Dx          int32 // LONG
  4075  	Dy          int32 // LONG
  4076  	MouseData   uint32
  4077  	DwFlags     uint32
  4078  	Time        uint32
  4079  	DwExtraInfo uintptr // ULONG_PTR
  4080  }
  4081  type MOUSEMOVEPOINT struct {
  4082  	X           int32
  4083  	Y           int32
  4084  	Time        uint32
  4085  	DwExtraInfo uintptr // ULONG_PTR
  4086  }
  4087  type MRUCMPPROC func(pString1 string, pString2 string) int32
  4088  type MRUINFO struct {
  4089  	CbSize      DWORD
  4090  	UMax        UINT
  4091  	FFlags      UINT
  4092  	HKey        HKEY
  4093  	LpszSubKey  LPCWSTR
  4094  	LpfnCompare uintptr // MRUCMPPROC
  4095  }
  4096  type MSG struct {
  4097  	Hwnd    HWND
  4098  	Message uint32
  4099  	WParam  uintptr
  4100  	LParam  uintptr
  4101  	Time    uint32
  4102  	Pt      POINT
  4103  }
  4104  type MSGBOXCALLBACK func(lpHelpInfo LPHELPINFO)
  4105  type MSGBOXPARAMS struct {
  4106  	CbSize             uint32
  4107  	HwndOwner          HWND
  4108  	HInstance          HINSTANCE
  4109  	LpszText           *uint16 // LPCWSTR
  4110  	LpszCaption        *uint16 // LPCWSTR
  4111  	DwStyle            uint32
  4112  	LpszIcon           *uint16 // LPCWSTR
  4113  	DwContextHelpId    *uint32 // DWORD_PTR
  4114  	LpfnMsgBoxCallback uintptr // MSGBOXCALLBACK
  4115  	DwLanguageId       uint32
  4116  }
  4117  type MULTI_QI struct {
  4118  	PIID/*const*/ *IID
  4119  	PItf *IUnknown
  4120  	Hr   HRESULT
  4121  }
  4122  type NDR_CS_ROUTINES struct {
  4123  	PSizeConvertRoutines *NDR_CS_SIZE_CONVERT_ROUTINES // NDR_CS_SIZE_CONVERT_ROUTINES
  4124  	PTagGettingRoutines  uintptr                       // CS_TAG_GETTING_ROUTINE
  4125  }
  4126  type NDR_CS_SIZE_CONVERT_ROUTINES struct {
  4127  	PfnNetSize   uintptr // CS_TYPE_NET_SIZE_ROUTINE
  4128  	PfnToNetCs   uintptr // CS_TYPE_TO_NETCS_ROUTINE
  4129  	PfnLocalSize uintptr // CS_TYPE_LOCAL_SIZE_ROUTINE
  4130  	PfnFromNetCs uintptr // CS_TYPE_FROM_NETCS_ROUTINE
  4131  }
  4132  type NDR_EXPR_DESC struct {
  4133  	POffset/*const*/ *uint16
  4134  	PFormatExpr PFORMAT_STRING
  4135  }
  4136  type NDR_RUNDOWN func(context uintptr)
  4137  type NDR_SCONTEXT *NDR_SCONTEXT_
  4138  type NDR_SCONTEXT_ struct {
  4139  	Pad         [2]uintptr
  4140  	UserContext uintptr
  4141  }
  4142  type NET_ADDRESS_INFO struct {
  4143  	Format  NET_ADDRESS_FORMAT
  4144  	storage [524]byte
  4145  }
  4146  type NET_ADDRESS_INFO_NamedAddress struct {
  4147  	Address [DNS_MAX_NAME_BUFFER_LENGTH]WCHAR
  4148  	Port    [6]WCHAR
  4149  }
  4150  
  4151  func (this *NET_ADDRESS_INFO) NamedAddress() *NET_ADDRESS_INFO_NamedAddress {
  4152  	return (*NET_ADDRESS_INFO_NamedAddress)(unsafe.Pointer(&this.storage[0]))
  4153  }
  4154  func (this *NET_ADDRESS_INFO) Ipv4Address() *SOCKADDR_IN {
  4155  	return (*SOCKADDR_IN)(unsafe.Pointer(&this.storage[0]))
  4156  }
  4157  func (this *NET_ADDRESS_INFO) Ipv6Address() *SOCKADDR_IN6 {
  4158  	return (*SOCKADDR_IN6)(unsafe.Pointer(&this.storage[0]))
  4159  }
  4160  func (this *NET_ADDRESS_INFO) IpAddress() *SOCKADDR {
  4161  	return (*SOCKADDR)(unsafe.Pointer(&this.storage[0]))
  4162  }
  4163  
  4164  type NET_IFINDEX ULONG
  4165  type NET_IF_NETWORK_GUID GUID
  4166  type NET_LUID NET_LUID_LH
  4167  type NET_LUID_LH struct {
  4168  	Value ULONG64
  4169  }
  4170  
  4171  func (this *NET_LUID_LH) Reserved() ULONG64 {
  4172  	v := this.Value
  4173  	return (v & 0xFFFFFF0000000000) >> (64 - 24)
  4174  }
  4175  func (this *NET_LUID_LH) NetLuidIndex() ULONG64 {
  4176  	v := this.Value
  4177  	return (v & 0xFFFFFF0000) >> 16
  4178  }
  4179  func (this *NET_LUID_LH) IfType() ULONG64 {
  4180  	v := this.Value
  4181  	return v & 0xFFFF
  4182  }
  4183  
  4184  type NOTIFYICONDATA struct {
  4185  	CbSize           DWORD
  4186  	HWnd             HWND
  4187  	UID              UINT
  4188  	UFlags           UINT
  4189  	UCallbackMessage UINT
  4190  	HIcon            HICON
  4191  	SzTip            [128]WCHAR
  4192  	DwState          DWORD
  4193  	DwStateMask      DWORD
  4194  	SzInfo           [256]WCHAR
  4195  	union1           UINT
  4196  	SzInfoTitle      [64]WCHAR
  4197  	DwInfoFlags      DWORD
  4198  	GuidItem         GUID
  4199  	HBalloonIcon     HICON
  4200  }
  4201  
  4202  func (this *NOTIFYICONDATA) GetUTimeout() UINT {
  4203  	return this.union1
  4204  }
  4205  func (this *NOTIFYICONDATA) SetUTimeout(v UINT) {
  4206  	this.union1 = v
  4207  }
  4208  func (this *NOTIFYICONDATA) GetUVersion() UINT {
  4209  	return this.union1
  4210  }
  4211  func (this *NOTIFYICONDATA) SetUVersion(v UINT) {
  4212  	this.union1 = v
  4213  }
  4214  
  4215  type NTSTATUS LONG
  4216  type NUMPARSE struct {
  4217  	CDig       INT
  4218  	DwInFlags  ULONG
  4219  	DwOutFlags ULONG
  4220  	CchUsed    INT
  4221  	NBaseShift INT
  4222  	NPwr10     INT
  4223  }
  4224  type OBJECTS_AND_NAME struct {
  4225  	ObjectsPresent          DWORD
  4226  	ObjectType              SE_OBJECT_TYPE
  4227  	ObjectTypeName          LPWSTR
  4228  	InheritedObjectTypeName LPWSTR
  4229  	PtstrName               LPWSTR
  4230  }
  4231  type OBJECTS_AND_SID struct {
  4232  	ObjectsPresent          DWORD
  4233  	ObjectTypeGuid          GUID
  4234  	InheritedObjectTypeGuid GUID
  4235  	PSid                    *SID
  4236  }
  4237  type OBJECT_TYPE_LIST struct {
  4238  	Level      USHORT
  4239  	Sbz        USHORT
  4240  	ObjectType *GUID
  4241  }
  4242  type OCPFIPARAMS struct {
  4243  	CbStructSize          ULONG
  4244  	HWndOwner             HWND
  4245  	X                     int32
  4246  	Y                     int32
  4247  	LpszCaption           LPCOLESTR
  4248  	CObjects              ULONG
  4249  	LplpUnk               *LPUNKNOWN
  4250  	CPages                ULONG
  4251  	LpPages               *CLSID
  4252  	Lcid                  LCID
  4253  	DispidInitialProperty DISPID
  4254  }
  4255  type OLECHAR WCHAR
  4256  type OLEINPLACEFRAMEINFO struct {
  4257  	Cb            UINT
  4258  	FMDIApp       BOOL
  4259  	HwndFrame     HWND
  4260  	Haccel        HACCEL
  4261  	CAccelEntries UINT
  4262  }
  4263  type OLEMENUGROUPWIDTHS struct {
  4264  	Width [6]LONG
  4265  }
  4266  type OLE_COLOR DWORD
  4267  type OPENFILENAME struct {
  4268  	LStructSize       DWORD
  4269  	HwndOwner         HWND
  4270  	HInstance         HINSTANCE
  4271  	LpstrFilter       LPCWSTR
  4272  	LpstrCustomFilter LPWSTR
  4273  	NMaxCustFilter    DWORD
  4274  	NFilterIndex      DWORD
  4275  	LpstrFile         LPWSTR
  4276  	NMaxFile          DWORD
  4277  	LpstrFileTitle    LPWSTR
  4278  	NMaxFileTitle     DWORD
  4279  	LpstrInitialDir   LPCWSTR
  4280  	LpstrTitle        LPCWSTR
  4281  	Flags             DWORD
  4282  	NFileOffset       WORD
  4283  	NFileExtension    WORD
  4284  	LpstrDefExt       LPCWSTR
  4285  	LCustData         LPARAM
  4286  	LpfnHook          LPOFNHOOKPROC
  4287  	LpTemplateName    LPCWSTR
  4288  	PvReserved        uintptr
  4289  	DwReserved        DWORD
  4290  	FlagsEx           DWORD
  4291  }
  4292  type OUTLINETEXTMETRIC struct {
  4293  	OtmSize                UINT
  4294  	OtmTextMetrics         TEXTMETRIC
  4295  	OtmFiller              BYTE
  4296  	OtmPanoseNumber        PANOSE
  4297  	OtmfsSelection         UINT
  4298  	OtmfsType              UINT
  4299  	OtmsCharSlopeRise      int32
  4300  	OtmsCharSlopeRun       int32
  4301  	OtmItalicAngle         int32
  4302  	OtmEMSquare            UINT
  4303  	OtmAscent              int32
  4304  	OtmDescent             int32
  4305  	OtmLineGap             UINT
  4306  	OtmsCapEmHeight        UINT
  4307  	OtmsXHeight            UINT
  4308  	OtmrcFontBox           RECT
  4309  	OtmMacAscent           int32
  4310  	OtmMacDescent          int32
  4311  	OtmMacLineGap          UINT
  4312  	OtmusMinimumPPEM       UINT
  4313  	OtmptSubscriptSize     POINT
  4314  	OtmptSubscriptOffset   POINT
  4315  	OtmptSuperscriptSize   POINT
  4316  	OtmptSuperscriptOffset POINT
  4317  	OtmsStrikeoutSize      UINT
  4318  	OtmsStrikeoutPosition  int32
  4319  	OtmsUnderscoreSize     int32
  4320  	OtmsUnderscorePosition int32
  4321  	OtmpFamilyName         PSTR
  4322  	OtmpFaceName           PSTR
  4323  	OtmpStyleName          PSTR
  4324  	OtmpFullName           PSTR
  4325  }
  4326  type OVERLAPPED struct {
  4327  	Internal     ULONG_PTR
  4328  	InternalHigh ULONG_PTR
  4329  	union1       [8]byte
  4330  	HEvent       HANDLE
  4331  }
  4332  
  4333  func (this *OVERLAPPED) Offset() *DWORD {
  4334  	return (*DWORD)(unsafe.Pointer(&this.union1[0]))
  4335  }
  4336  func (this *OVERLAPPED) OffsetHigh() *DWORD {
  4337  	return (*DWORD)(unsafe.Pointer(&this.union1[4]))
  4338  }
  4339  func (this *OVERLAPPED) Pointer() *PVOID {
  4340  	return (*PVOID)(unsafe.Pointer(&this.union1[0]))
  4341  }
  4342  
  4343  type PADDRINFO *ADDRINFO
  4344  type PAGESETUPDLG struct {
  4345  	LStructSize             DWORD
  4346  	HwndOwner               HWND
  4347  	HDevMode                HGLOBAL
  4348  	HDevNames               HGLOBAL
  4349  	Flags                   DWORD
  4350  	PtPaperSize             POINT
  4351  	RtMinMargin             RECT
  4352  	RtMargin                RECT
  4353  	HInstance               HINSTANCE
  4354  	LCustData               LPARAM
  4355  	LpfnPageSetupHook       LPPAGESETUPHOOK
  4356  	LpfnPagePaintHook       LPPAGEPAINTHOOK
  4357  	LpPageSetupTemplateName LPCWSTR
  4358  	HPageSetupTemplate      HGLOBAL
  4359  }
  4360  type PAINTSTRUCT struct {
  4361  	Hdc         HDC
  4362  	FErase      BOOL
  4363  	RcPaint     RECT
  4364  	FRestore    BOOL
  4365  	FIncUpdate  BOOL
  4366  	RgbReserved [32]byte
  4367  }
  4368  type PALETTEENTRY struct {
  4369  	PeRed   byte
  4370  	PeGreen byte
  4371  	PeBlue  byte
  4372  	PeFlags byte
  4373  }
  4374  type PANOSE struct {
  4375  	BFamilyType      BYTE
  4376  	BSerifStyle      BYTE
  4377  	BWeight          BYTE
  4378  	BProportion      BYTE
  4379  	BContrast        BYTE
  4380  	BStrokeVariation BYTE
  4381  	BArmStyle        BYTE
  4382  	BLetterform      BYTE
  4383  	BMidline         BYTE
  4384  	BXHeight         BYTE
  4385  }
  4386  type PAPPBARDATA *APPBARDATA
  4387  type PARAMDATA struct {
  4388  	SzName *OLECHAR
  4389  	Vt     VARTYPE
  4390  }
  4391  type PARRAY_INFO *ARRAY_INFO
  4392  type PARSEDURL struct {
  4393  	CbSize      DWORD
  4394  	PszProtocol LPCWSTR
  4395  	CchProtocol UINT
  4396  	PszSuffix   LPCWSTR
  4397  	CchSuffix   UINT
  4398  	NScheme     UINT
  4399  }
  4400  type PATHDATA struct {
  4401  	Flags FLONG
  4402  	Count ULONG
  4403  	Pptfx *POINTFIX
  4404  }
  4405  type PATHOBJ struct {
  4406  	Fl      FLONG
  4407  	CCurves ULONG
  4408  }
  4409  type PAUDIT_POLICY_INFORMATION *AUDIT_POLICY_INFORMATION
  4410  type PBYTE *byte
  4411  type PCCERT_CONTEXT /*const*/ *CERT_CONTEXT
  4412  type PCCRL_CONTEXT /*const*/ *CRL_CONTEXT
  4413  type PCCTL_CONTEXT /*const*/ *CTL_CONTEXT
  4414  type PCERT_EXTENSION *CERT_EXTENSION
  4415  type PCERT_INFO *CERT_INFO
  4416  type PCERT_NAME_BLOB *CERT_NAME_BLOB
  4417  type PCERT_RDN_VALUE_BLOB *CERT_RDN_VALUE_BLOB
  4418  type PCHAR *CHAR
  4419  type PCIDLIST_ABSOLUTE LPCITEMIDLIST
  4420  type PCIDLIST_ABSOLUTE_ARRAY *LPCITEMIDLIST
  4421  type PCONSOLE_SCREEN_BUFFER_INFO *CONSOLE_SCREEN_BUFFER_INFO
  4422  type PCONSOLE_SCREEN_BUFFER_INFOEX *CONSOLE_SCREEN_BUFFER_INFOEX
  4423  type PCRL_ENTRY *CRL_ENTRY
  4424  type PCRL_INFO *CRL_INFO
  4425  type PCRYPT_ATTRIBUTE *CRYPT_ATTRIBUTE
  4426  type PCRYPT_ATTR_BLOB *CRYPT_ATTR_BLOB
  4427  type PCRYPT_DATA_BLOB *CRYPT_DATA_BLOB
  4428  type PCRYPT_DER_BLOB *CRYPT_DER_BLOB
  4429  type PCRYPT_INTEGER_BLOB *CRYPT_INTEGER_BLOB
  4430  type PCTL_ENTRY *CTL_ENTRY
  4431  type PCTL_INFO *CTL_INFO
  4432  type PCUITEMID_CHILD_ARRAY *LPCITEMIDLIST
  4433  type PCWSTR *uint16
  4434  type PCZZWSTR /*const*/ *WCHAR
  4435  type PDH_COUNTER_INFO struct {
  4436  	DwLength        DWORD
  4437  	DwType          DWORD
  4438  	CVersion        DWORD
  4439  	CStatus         DWORD
  4440  	LScale          LONG
  4441  	LDefaultScale   LONG
  4442  	DwUserData      DWORD_PTR
  4443  	DwQueryUserData DWORD_PTR
  4444  	SzFullPath      LPWSTR
  4445  	union1          [4 * pad11for64_7for32]byte
  4446  	SzExplainText   LPWSTR
  4447  	DataBuffer      [1]DWORD
  4448  }
  4449  
  4450  func (this *PDH_COUNTER_INFO) DataItemPath() *PDH_DATA_ITEM_PATH_ELEMENTS {
  4451  	return (*PDH_DATA_ITEM_PATH_ELEMENTS)(unsafe.Pointer(&this.union1[0]))
  4452  }
  4453  func (this *PDH_COUNTER_INFO) CounterPath() *PDH_COUNTER_PATH_ELEMENTS {
  4454  	return (*PDH_COUNTER_PATH_ELEMENTS)(unsafe.Pointer(&this.union1[0]))
  4455  }
  4456  func (this *PDH_COUNTER_INFO) SzMachineName() *LPWSTR {
  4457  	return (*LPWSTR)(unsafe.Pointer(&this.union1[0]))
  4458  }
  4459  func (this *PDH_COUNTER_INFO) SzObjectName() *LPWSTR {
  4460  	var ptr LPWSTR
  4461  	return (*LPWSTR)(unsafe.Pointer(uintptr(unsafe.Pointer(&this.union1[0])) + unsafe.Sizeof(ptr)))
  4462  }
  4463  func (this *PDH_COUNTER_INFO) SzInstanceName() *LPWSTR {
  4464  	var ptr LPWSTR
  4465  	return (*LPWSTR)(unsafe.Pointer(uintptr(unsafe.Pointer(&this.union1[0])) + unsafe.Sizeof(ptr)*2))
  4466  }
  4467  func (this *PDH_COUNTER_INFO) SzParentInstance() *LPWSTR {
  4468  	var ptr LPWSTR
  4469  	return (*LPWSTR)(unsafe.Pointer(uintptr(unsafe.Pointer(&this.union1[0])) + unsafe.Sizeof(ptr)*3))
  4470  }
  4471  func (this *PDH_COUNTER_INFO) DwInstanceIndex() *DWORD {
  4472  	var ptr LPWSTR
  4473  	return (*DWORD)(unsafe.Pointer(uintptr(unsafe.Pointer(&this.union1[0])) + unsafe.Sizeof(ptr)*4))
  4474  }
  4475  func (this *PDH_COUNTER_INFO) SzCounterName() *LPWSTR {
  4476  	var ptr LPWSTR
  4477  	pad := 4
  4478  	if is64 {
  4479  		pad = 8
  4480  	}
  4481  	return (*LPWSTR)(unsafe.Pointer(uintptr(unsafe.Pointer(&this.union1[0])) + unsafe.Sizeof(ptr)*4 + uintptr(pad)))
  4482  }
  4483  
  4484  type PDH_COUNTER_PATH_ELEMENTS struct {
  4485  	SzMachineName    LPWSTR
  4486  	SzObjectName     LPWSTR
  4487  	SzInstanceName   LPWSTR
  4488  	SzParentInstance LPWSTR
  4489  	DwInstanceIndex  DWORD
  4490  	SzCounterName    LPWSTR
  4491  }
  4492  type PDH_DATA_ITEM_PATH_ELEMENTS struct {
  4493  	SzMachineName  LPWSTR
  4494  	ObjectGUID     GUID
  4495  	wItemId        DWORD
  4496  	SzInstanceName LPWSTR
  4497  }
  4498  
  4499  const (
  4500  	PDH_FMT_LONG   = (DWORD(0x00000100))
  4501  	PDH_FMT_DOUBLE = (DWORD(0x00000200))
  4502  	PDH_FMT_LARGE  = (DWORD(0x00000400))
  4503  )
  4504  
  4505  type PDH_FMT_COUNTERVALUE struct {
  4506  	storage [16]byte
  4507  }
  4508  
  4509  func (this *PDH_FMT_COUNTERVALUE) CStatus() *DWORD {
  4510  	return (*DWORD)(unsafe.Pointer(&this.storage[0]))
  4511  }
  4512  func (this *PDH_FMT_COUNTERVALUE) LongValue() *LONG {
  4513  	return (*LONG)(unsafe.Pointer(&this.storage[8]))
  4514  }
  4515  func (this *PDH_FMT_COUNTERVALUE) DoubleValue() *float64 {
  4516  	return (*float64)(unsafe.Pointer(&this.storage[8]))
  4517  }
  4518  func (this *PDH_FMT_COUNTERVALUE) LargeValue() *LONGLONG {
  4519  	return (*LONGLONG)(unsafe.Pointer(&this.storage[8]))
  4520  }
  4521  func (this *PDH_FMT_COUNTERVALUE) AnsiStringValue() *LPCSTR {
  4522  	return (*LPCSTR)(unsafe.Pointer(&this.storage[8]))
  4523  }
  4524  func (this *PDH_FMT_COUNTERVALUE) WideStringValue() *LPCWSTR {
  4525  	return (*LPCWSTR)(unsafe.Pointer(&this.storage[8]))
  4526  }
  4527  
  4528  type PDH_HCOUNTER HANDLE
  4529  type PDH_HLOG HANDLE
  4530  type PDH_HQUERY HANDLE
  4531  type PDH_RAW_COUNTER struct {
  4532  	CStatus     DWORD
  4533  	TimeStamp   FILETIME
  4534  	padding1    [pad0for64_4for32]byte
  4535  	FirstValue  LONGLONG
  4536  	SecondValue LONGLONG
  4537  	MultiCount  DWORD
  4538  	padding2    [pad0for64_4for32]byte
  4539  }
  4540  type PDH_STATUS LONG
  4541  type PENCRYPTION_CERTIFICATE *ENCRYPTION_CERTIFICATE
  4542  type PENG_TIME_FIELDS *ENG_TIME_FIELDS
  4543  type PENUM_PAGE_FILE_CALLBACK func(pContext LPVOID, pPageFileInfo PENUM_PAGE_FILE_INFORMATION, lpFilename string) BOOL
  4544  type PENUM_PAGE_FILE_INFORMATION *ENUM_PAGE_FILE_INFORMATION
  4545  type PERFORMANCE_INFORMATION struct {
  4546  	Cb                DWORD
  4547  	CommitTotal       SIZE_T
  4548  	CommitLimit       SIZE_T
  4549  	CommitPeak        SIZE_T
  4550  	PhysicalTotal     SIZE_T
  4551  	PhysicalAvailable SIZE_T
  4552  	SystemCache       SIZE_T
  4553  	KernelTotal       SIZE_T
  4554  	KernelPaged       SIZE_T
  4555  	KernelNonpaged    SIZE_T
  4556  	PageSize          SIZE_T
  4557  	HandleCount       DWORD
  4558  	ProcessCount      DWORD
  4559  	ThreadCount       DWORD
  4560  }
  4561  type PERF_COUNTERSET_INSTANCE struct {
  4562  	CounterSetGuid     GUID
  4563  	DwSize             ULONG
  4564  	InstanceId         ULONG
  4565  	InstanceNameOffset ULONG
  4566  	InstanceNameSize   ULONG
  4567  }
  4568  type PFD_GLYPHATTR *FD_GLYPHATTR
  4569  type PFIXED_INFO *FIXED_INFO_W2KSP1
  4570  type PFLOAT_LONG *FLOAT_LONG
  4571  type PFNCALLBACK func(wType uint32, wFmt uint32, hConv HCONV, hsz1 HSZ, hsz2 HSZ, hData HDDEDATA, dwData1 uintptr, dwData2 uintptr) HDDEDATA
  4572  type PFORMAT_STRING *byte
  4573  type PGENERIC_BINDING_INFO *GENERIC_BINDING_INFO
  4574  type PGLYPHPOS *GLYPHPOS
  4575  type PHUSKEY *HUSKEY
  4576  type PICTDESC struct {
  4577  	CbSizeofstruct UINT
  4578  	PicType        UINT
  4579  	union1         uintptr
  4580  	union2         int32
  4581  	union3         int32
  4582  }
  4583  
  4584  func (this *PICTDESC) Hbitmap() HBITMAP {
  4585  	return HBITMAP(this.union1)
  4586  }
  4587  func (this *PICTDESC) Hpal() HPALETTE {
  4588  	var ptr uintptr
  4589  	if is64 {
  4590  		*(*int32)(unsafe.Pointer(&ptr)) = this.union2
  4591  		*(*int32)(unsafe.Pointer(uintptr(unsafe.Pointer(&ptr)) + 4)) = this.union3
  4592  	} else {
  4593  		*(*int32)(unsafe.Pointer(&ptr)) = this.union2
  4594  	}
  4595  	return HPALETTE(ptr)
  4596  }
  4597  func (this *PICTDESC) Hmeta() HMETAFILE {
  4598  	return HMETAFILE(this.union1)
  4599  }
  4600  func (this *PICTDESC) XExt() int32 {
  4601  	return this.union2
  4602  }
  4603  func (this *PICTDESC) YExt() int32 {
  4604  	return this.union3
  4605  }
  4606  func (this *PICTDESC) Hicon() HICON {
  4607  	return HICON(this.union1)
  4608  }
  4609  func (this *PICTDESC) Hemf() HENHMETAFILE {
  4610  	return HENHMETAFILE(this.union1)
  4611  }
  4612  
  4613  type PIDLIST_ABSOLUTE LPITEMIDLIST
  4614  type PINT_PTR *INT_PTR
  4615  type PIO_APC_ROUTINE func(ApcContext PVOID, IoStatusBlock PIO_STATUS_BLOCK, Reserved ULONG)
  4616  type PIO_STATUS_BLOCK *IO_STATUS_BLOCK
  4617  type PIP_ADAPTER_ADDRESSES *IP_ADAPTER_ADDRESSES_LH
  4618  type PIP_ADAPTER_ANYCAST_ADDRESS_XP *IP_ADAPTER_ANYCAST_ADDRESS_XP
  4619  type PIP_ADAPTER_DNS_SERVER_ADDRESS_XP *IP_ADAPTER_DNS_SERVER_ADDRESS_XP
  4620  type PIP_ADAPTER_DNS_SUFFIX *IP_ADAPTER_DNS_SUFFIX
  4621  type PIP_ADAPTER_GATEWAY_ADDRESS_LH *IP_ADAPTER_GATEWAY_ADDRESS_LH
  4622  type PIP_ADAPTER_INDEX_MAP *IP_ADAPTER_INDEX_MAP
  4623  type PIP_ADAPTER_INFO *IP_ADAPTER_INFO
  4624  type PIP_ADAPTER_MULTICAST_ADDRESS_XP *IP_ADAPTER_MULTICAST_ADDRESS_XP
  4625  type PIP_ADAPTER_ORDER_MAP *IP_ADAPTER_ORDER_MAP
  4626  type PIP_ADAPTER_PREFIX_XP *IP_ADAPTER_PREFIX_XP
  4627  type PIP_ADAPTER_UNICAST_ADDRESS_LH *IP_ADAPTER_UNICAST_ADDRESS_LH
  4628  type PIP_ADAPTER_WINS_SERVER_ADDRESS_LH *IP_ADAPTER_WINS_SERVER_ADDRESS_LH
  4629  type PIP_ADDR_STRING *IP_ADDR_STRING
  4630  type PIP_INTERFACE_INFO *IP_INTERFACE_INFO
  4631  type PIP_OPTION_INFORMATION *IP_OPTION_INFORMATION
  4632  type PIP_PER_ADAPTER_INFO *IP_PER_ADAPTER_INFO_W2KSP1
  4633  type PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS *IP_UNIDIRECTIONAL_ADAPTER_ADDRESS
  4634  type PIXELFORMATDESCRIPTOR struct {
  4635  	NSize           uint16
  4636  	NVersion        uint16
  4637  	DwFlags         uint32
  4638  	IPixelType      byte
  4639  	CColorBits      byte
  4640  	CRedBits        byte
  4641  	CRedShift       byte
  4642  	CGreenBits      byte
  4643  	CGreenShift     byte
  4644  	CBlueBits       byte
  4645  	CBlueShift      byte
  4646  	CAlphaBits      byte
  4647  	CAlphaShift     byte
  4648  	CAccumBits      byte
  4649  	CAccumRedBits   byte
  4650  	CAccumGreenBits byte
  4651  	CAccumBlueBits  byte
  4652  	CAccumAlphaBits byte
  4653  	CDepthBits      byte
  4654  	CStencilBits    byte
  4655  	CAuxBuffers     byte
  4656  	ILayerType      byte
  4657  	BReserved       byte
  4658  	DwLayerMask     uint32
  4659  	DwVisibleMask   uint32
  4660  	DwDamageMask    uint32
  4661  }
  4662  type PMIB_ICMP *MIB_ICMP
  4663  type PMIB_ICMP_EX *MIB_ICMP_EX_XPSP1
  4664  type PMIB_IFROW *MIB_IFROW
  4665  type PMIB_IFTABLE *MIB_IFTABLE
  4666  type PMIB_IPADDRTABLE *MIB_IPADDRTABLE
  4667  type PMIB_IPFORWARDROW *MIB_IPFORWARDROW
  4668  type PMIB_IPFORWARDTABLE *MIB_IPFORWARDTABLE
  4669  type PMIB_IPNETROW *MIB_IPNETROW_LH
  4670  type PMIB_IPNETTABLE *MIB_IPNETTABLE
  4671  type PMIB_IPSTATS *MIB_IPSTATS_LH
  4672  type PMIB_TCP6ROW *MIB_TCP6ROW
  4673  type PMIB_TCP6ROW_OWNER_MODULE *MIB_TCP6ROW_OWNER_MODULE
  4674  type PMIB_TCP6TABLE *MIB_TCP6TABLE
  4675  type PMIB_TCP6TABLE2 *MIB_TCP6TABLE2
  4676  type PMIB_TCPROW *MIB_TCPROW_LH
  4677  type PMIB_TCPROW_OWNER_MODULE *MIB_TCPROW_OWNER_MODULE
  4678  type PMIB_TCPSTATS *MIB_TCPSTATS_LH
  4679  type PMIB_TCPTABLE *MIB_TCPTABLE
  4680  type PMIB_TCPTABLE2 *MIB_TCPTABLE2
  4681  type PMIB_UDP6ROW_OWNER_MODULE *MIB_UDP6ROW_OWNER_MODULE
  4682  type PMIB_UDP6TABLE *MIB_UDP6TABLE
  4683  type PMIB_UDPROW_OWNER_MODULE *MIB_UDPROW_OWNER_MODULE
  4684  type PMIB_UDPSTATS *MIB_UDPSTATS
  4685  type PMIB_UDPTABLE *MIB_UDPTABLE
  4686  type PMIDL_STUB_MESSAGE *MIDL_STUB_MESSAGE
  4687  type PNET_ADDRESS_INFO *NET_ADDRESS_INFO
  4688  type PNOTIFYICONDATA *NOTIFYICONDATA
  4689  type POINT struct {
  4690  	X, Y int32
  4691  }
  4692  type POINTFIX struct {
  4693  	X FIX
  4694  	Y FIX
  4695  }
  4696  type POINTFLOAT struct {
  4697  	X float32
  4698  	Y float32
  4699  }
  4700  type POINTL struct {
  4701  	X LONG
  4702  	Y LONG
  4703  }
  4704  type POINTQF struct {
  4705  	X LARGE_INTEGER
  4706  	Y LARGE_INTEGER
  4707  }
  4708  type POINTS struct {
  4709  	X int16 // SHORT
  4710  	Y int16 // SHORT
  4711  }
  4712  type POLICY_AUDIT_SID_ARRAY struct {
  4713  	UsersCount   ULONG
  4714  	UserSidArray *PSID
  4715  }
  4716  type POLYTEXT struct {
  4717  	X       int32
  4718  	Y       int32
  4719  	N       UINT
  4720  	Lpstr   LPCWSTR
  4721  	UiFlags UINT
  4722  	Rcl     RECT
  4723  	Pdx     *int32
  4724  }
  4725  type PPERFORMACE_INFORMATION *PERFORMANCE_INFORMATION
  4726  type PPOLICY_AUDIT_EVENT_TYPE *POLICY_AUDIT_EVENT_TYPE
  4727  type PPOLICY_AUDIT_SID_ARRAY *POLICY_AUDIT_SID_ARRAY
  4728  type PPROCESS_MEMORY_COUNTERS *PROCESS_MEMORY_COUNTERS
  4729  type PPSAPI_WS_WATCH_INFORMATION *PSAPI_WS_WATCH_INFORMATION
  4730  type PPSAPI_WS_WATCH_INFORMATION_EX *PSAPI_WS_WATCH_INFORMATION_EX
  4731  type PRECTFX *RECTFX
  4732  type PRINTDLGEX struct {
  4733  	LStructSize         DWORD
  4734  	HwndOwner           HWND
  4735  	HDevMode            HGLOBAL
  4736  	HDevNames           HGLOBAL
  4737  	HDC                 HDC
  4738  	Flags               DWORD
  4739  	Flags2              DWORD
  4740  	ExclusionFlags      DWORD
  4741  	NPageRanges         DWORD
  4742  	NMaxPageRanges      DWORD
  4743  	LpPageRanges        LPPRINTPAGERANGE
  4744  	NMinPage            DWORD
  4745  	NMaxPage            DWORD
  4746  	NCopies             DWORD
  4747  	HInstance           HINSTANCE
  4748  	LpPrintTemplateName LPCWSTR
  4749  	LpCallback          LPUNKNOWN
  4750  	NPropertyPages      DWORD
  4751  	LphPropertyPages    *HPROPSHEETPAGE
  4752  	NStartPage          DWORD
  4753  	DwResultAction      DWORD
  4754  }
  4755  type PRINTPAGERANGE struct {
  4756  	NFromPage DWORD
  4757  	NToPage   DWORD
  4758  }
  4759  type PRIVILEGE_SET struct {
  4760  	PrivilegeCount ULONG
  4761  	Control        ULONG
  4762  	Privilege      [ANYSIZE_ARRAY]LUID_AND_ATTRIBUTES
  4763  }
  4764  type PROC uintptr
  4765  type PROCESS_INFORMATION struct {
  4766  	HProcess    HANDLE
  4767  	HThread     HANDLE
  4768  	DwProcessId DWORD
  4769  	DwThreadId  DWORD
  4770  }
  4771  type PROCESS_MEMORY_COUNTERS struct {
  4772  	Cb                         DWORD
  4773  	PageFaultCount             DWORD
  4774  	PeakWorkingSetSize         SIZE_T
  4775  	WorkingSetSize             SIZE_T
  4776  	QuotaPeakPagedPoolUsage    SIZE_T
  4777  	QuotaPagedPoolUsage        SIZE_T
  4778  	QuotaPeakNonPagedPoolUsage SIZE_T
  4779  	QuotaNonPagedPoolUsage     SIZE_T
  4780  	PagefileUsage              SIZE_T
  4781  	PeakPagefileUsage          SIZE_T
  4782  }
  4783  type PROPENUMPROC func(hWnd HWND, lpszString string, hData HANDLE) BOOL
  4784  type PROPENUMPROCEX func(hwnd HWND, lpszString LPWSTR, hData HANDLE, dwData uintptr) BOOL
  4785  type PROPID ULONG
  4786  type PROPSHEETCALLBACK func(unnamed0 HWND, unnamed1 UINT, unnamed2 LPARAM) int32
  4787  type PROPSHEETHEADER PROPSHEETHEADER_V2
  4788  type PROPSHEETHEADER_V2 struct {
  4789  	dwSize       DWORD
  4790  	dwFlags      DWORD
  4791  	hwndParent   HWND
  4792  	hInstance    HINSTANCE
  4793  	union1       uintptr
  4794  	PszCaption   LPCWSTR
  4795  	NPages       UINT
  4796  	union2       uintptr
  4797  	union3       uintptr
  4798  	PfnCallback  uintptr // PFNPROPSHEETCALLBACK
  4799  	union4       uintptr
  4800  	HplWatermark HPALETTE
  4801  	union5       uintptr
  4802  }
  4803  
  4804  func (this *PROPSHEETHEADER_V2) HIcon() HICON {
  4805  	return HICON(this.union1)
  4806  }
  4807  func (this *PROPSHEETHEADER_V2) PszIcon() string {
  4808  	return stringFromUnicode16((*uint16)(unsafe.Pointer(this.union1)))
  4809  }
  4810  func (this *PROPSHEETHEADER_V2) NStartPage() UINT {
  4811  	return *(*UINT)(unsafe.Pointer(&this.union2))
  4812  }
  4813  func (this *PROPSHEETHEADER_V2) PStartPage() string {
  4814  	return stringFromUnicode16((*uint16)(unsafe.Pointer(this.union2)))
  4815  }
  4816  func (this *PROPSHEETHEADER_V2) Ppsp() /*const*/ **PROPSHEETPAGE {
  4817  	return (**PROPSHEETPAGE)(unsafe.Pointer(&this.union3))
  4818  }
  4819  func (this *PROPSHEETHEADER_V2) Phpage() *HPROPSHEETPAGE {
  4820  	return (*HPROPSHEETPAGE)(unsafe.Pointer(&this.union3))
  4821  }
  4822  func (this *PROPSHEETHEADER_V2) HbmWatermark() HBITMAP {
  4823  	return HBITMAP(this.union4)
  4824  }
  4825  func (this *PROPSHEETHEADER_V2) PszbmWatermark() string {
  4826  	return stringFromUnicode16((*uint16)(unsafe.Pointer(this.union4)))
  4827  }
  4828  func (this *PROPSHEETHEADER_V2) HbmHeader() HBITMAP {
  4829  	return HBITMAP(this.union5)
  4830  }
  4831  func (this *PROPSHEETHEADER_V2) PszbmHeader() string {
  4832  	return stringFromUnicode16((*uint16)(unsafe.Pointer(this.union5)))
  4833  }
  4834  
  4835  type PROPSHEETPAGE PROPSHEETPAGE_V4
  4836  type PROPSHEETPAGE_RESOURCE *DLGTEMPLATE // const DLGTEMPLATE*
  4837  type PROPSHEETPAGE_V4 struct {
  4838  	DwSize            DWORD
  4839  	DwFlags           DWORD
  4840  	HInstance         HINSTANCE
  4841  	union1            uintptr
  4842  	union2            uintptr
  4843  	PszTitle          LPCWSTR
  4844  	PfnDlgProc        uintptr // DLGPROC
  4845  	LParam            uintptr
  4846  	PfnCallback       uintptr // PSPCALLBACK
  4847  	PcRefParent       *UINT
  4848  	PszHeaderTitle    LPCWSTR
  4849  	PszHeaderSubTitle LPCWSTR
  4850  	HActCtx           HANDLE
  4851  	union3            uintptr
  4852  }
  4853  
  4854  func (this *PROPSHEETPAGE_V4) PszTemplate() *LPCWSTR {
  4855  	return (*LPCWSTR)(unsafe.Pointer(&this.union1))
  4856  }
  4857  func (this *PROPSHEETPAGE_V4) PResource() *PROPSHEETPAGE_RESOURCE {
  4858  	return (*PROPSHEETPAGE_RESOURCE)(unsafe.Pointer(&this.union1))
  4859  }
  4860  func (this *PROPSHEETPAGE_V4) HIcon() *HICON {
  4861  	return (*HICON)(unsafe.Pointer(&this.union2))
  4862  }
  4863  func (this *PROPSHEETPAGE_V4) PszIcon() *LPCWSTR {
  4864  	return (*LPCWSTR)(unsafe.Pointer(&this.union2))
  4865  }
  4866  func (this *PROPSHEETPAGE_V4) HbmHeader() *HBITMAP {
  4867  	return (*HBITMAP)(unsafe.Pointer(&this.union3))
  4868  }
  4869  func (this *PROPSHEETPAGE_V4) PszbmHeader() *LPCWSTR {
  4870  	return (*LPCWSTR)(unsafe.Pointer(&this.union3))
  4871  }
  4872  
  4873  type PROPSPEC struct {
  4874  	ulKind ULONG
  4875  	union1 uintptr
  4876  }
  4877  
  4878  func (this *PROPSPEC) Propid() *PROPID {
  4879  	return (*PROPID)(unsafe.Pointer(&this.union1))
  4880  }
  4881  func (this *PROPSPEC) Lpwstr() *LPOLESTR {
  4882  	return (*LPOLESTR)(unsafe.Pointer(&this.union1))
  4883  }
  4884  
  4885  type PROPVARIANT struct {
  4886  	Vt         VARTYPE
  4887  	WReserved1 WORD
  4888  	WReserved2 WORD
  4889  	WReserved3 WORD
  4890  	storage1   [ptrsize * 2]byte
  4891  }
  4892  
  4893  func (this *PROPVARIANT) CVal() *CHAR    { return (*CHAR)(unsafe.Pointer(&this.storage1[0])) }
  4894  func (this *PROPVARIANT) BVal() *UCHAR   { return (*UCHAR)(unsafe.Pointer(&this.storage1[0])) }
  4895  func (this *PROPVARIANT) IVal() *SHORT   { return (*SHORT)(unsafe.Pointer(&this.storage1[0])) }
  4896  func (this *PROPVARIANT) UiVal() *USHORT { return (*USHORT)(unsafe.Pointer(&this.storage1[0])) }
  4897  func (this *PROPVARIANT) LVal() *LONG    { return (*LONG)(unsafe.Pointer(&this.storage1[0])) }
  4898  func (this *PROPVARIANT) UlVal() *ULONG  { return (*ULONG)(unsafe.Pointer(&this.storage1[0])) }
  4899  func (this *PROPVARIANT) IntVal() *INT   { return (*INT)(unsafe.Pointer(&this.storage1[0])) }
  4900  func (this *PROPVARIANT) UintVal() *UINT { return (*UINT)(unsafe.Pointer(&this.storage1[0])) }
  4901  func (this *PROPVARIANT) HVal() *LARGE_INTEGER {
  4902  	return (*LARGE_INTEGER)(unsafe.Pointer(&this.storage1[0]))
  4903  }
  4904  func (this *PROPVARIANT) UhVal() *ULARGE_INTEGER {
  4905  	return (*ULARGE_INTEGER)(unsafe.Pointer(&this.storage1[0]))
  4906  }
  4907  func (this *PROPVARIANT) FltVal() *FLOAT  { return (*FLOAT)(unsafe.Pointer(&this.storage1[0])) }
  4908  func (this *PROPVARIANT) DblVal() *DOUBLE { return (*DOUBLE)(unsafe.Pointer(&this.storage1[0])) }
  4909  func (this *PROPVARIANT) BoolVal() *VARIANT_BOOL {
  4910  	return (*VARIANT_BOOL)(unsafe.Pointer(&this.storage1[0]))
  4911  }
  4912  func (this *PROPVARIANT) Scode() *SCODE       { return (*SCODE)(unsafe.Pointer(&this.storage1[0])) }
  4913  func (this *PROPVARIANT) CyVal() *CY          { return (*CY)(unsafe.Pointer(&this.storage1[0])) }
  4914  func (this *PROPVARIANT) Date() *DATE         { return (*DATE)(unsafe.Pointer(&this.storage1[0])) }
  4915  func (this *PROPVARIANT) Filetime() *FILETIME { return (*FILETIME)(unsafe.Pointer(&this.storage1[0])) }
  4916  func (this *PROPVARIANT) Puuid() **CLSID      { return (**CLSID)(unsafe.Pointer(&this.storage1[0])) }
  4917  func (this *PROPVARIANT) Pclipdata() **CLIPDATA {
  4918  	return (**CLIPDATA)(unsafe.Pointer(&this.storage1[0]))
  4919  }
  4920  func (this *PROPVARIANT) BstrVal() *BSTR { return (*BSTR)(unsafe.Pointer(&this.storage1[0])) }
  4921  func (this *PROPVARIANT) BstrblobVal() *BSTRBLOB {
  4922  	return (*BSTRBLOB)(unsafe.Pointer(&this.storage1[0]))
  4923  }
  4924  func (this *PROPVARIANT) Blob() *BLOB         { return (*BLOB)(unsafe.Pointer(&this.storage1[0])) }
  4925  func (this *PROPVARIANT) PszVal() *LPSTR      { return (*LPSTR)(unsafe.Pointer(&this.storage1[0])) }
  4926  func (this *PROPVARIANT) PwszVal() *LPWSTR    { return (*LPWSTR)(unsafe.Pointer(&this.storage1[0])) }
  4927  func (this *PROPVARIANT) PunkVal() **IUnknown { return (**IUnknown)(unsafe.Pointer(&this.storage1[0])) }
  4928  func (this *PROPVARIANT) PdispVal() **IDispatch {
  4929  	return (**IDispatch)(unsafe.Pointer(&this.storage1[0]))
  4930  }
  4931  func (this *PROPVARIANT) PStream() **IStream   { return (**IStream)(unsafe.Pointer(&this.storage1[0])) }
  4932  func (this *PROPVARIANT) PStorage() **IStorage { return (**IStorage)(unsafe.Pointer(&this.storage1[0])) }
  4933  func (this *PROPVARIANT) PVersionedStream() *LPVERSIONEDSTREAM {
  4934  	return (*LPVERSIONEDSTREAM)(unsafe.Pointer(&this.storage1[0]))
  4935  }
  4936  func (this *PROPVARIANT) Parray() *LPSAFEARRAY {
  4937  	return (*LPSAFEARRAY)(unsafe.Pointer(&this.storage1[0]))
  4938  }
  4939  func (this *PROPVARIANT) Cac() *CAC         { return (*CAC)(unsafe.Pointer(&this.storage1[0])) }
  4940  func (this *PROPVARIANT) Caub() *CAUB       { return (*CAUB)(unsafe.Pointer(&this.storage1[0])) }
  4941  func (this *PROPVARIANT) Cai() *CAI         { return (*CAI)(unsafe.Pointer(&this.storage1[0])) }
  4942  func (this *PROPVARIANT) Caui() *CAUI       { return (*CAUI)(unsafe.Pointer(&this.storage1[0])) }
  4943  func (this *PROPVARIANT) Cal() *CAL         { return (*CAL)(unsafe.Pointer(&this.storage1[0])) }
  4944  func (this *PROPVARIANT) Caul() *CAUL       { return (*CAUL)(unsafe.Pointer(&this.storage1[0])) }
  4945  func (this *PROPVARIANT) Cah() *CAH         { return (*CAH)(unsafe.Pointer(&this.storage1[0])) }
  4946  func (this *PROPVARIANT) Cauh() *CAUH       { return (*CAUH)(unsafe.Pointer(&this.storage1[0])) }
  4947  func (this *PROPVARIANT) Caflt() *CAFLT     { return (*CAFLT)(unsafe.Pointer(&this.storage1[0])) }
  4948  func (this *PROPVARIANT) Cadbl() *CADBL     { return (*CADBL)(unsafe.Pointer(&this.storage1[0])) }
  4949  func (this *PROPVARIANT) Cabool() *CABOOL   { return (*CABOOL)(unsafe.Pointer(&this.storage1[0])) }
  4950  func (this *PROPVARIANT) Cascode() *CASCODE { return (*CASCODE)(unsafe.Pointer(&this.storage1[0])) }
  4951  func (this *PROPVARIANT) Cacy() *CACY       { return (*CACY)(unsafe.Pointer(&this.storage1[0])) }
  4952  func (this *PROPVARIANT) Cadate() *CADATE   { return (*CADATE)(unsafe.Pointer(&this.storage1[0])) }
  4953  func (this *PROPVARIANT) Cafiletime() *CAFILETIME {
  4954  	return (*CAFILETIME)(unsafe.Pointer(&this.storage1[0]))
  4955  }
  4956  func (this *PROPVARIANT) Cauuid() *CACLSID { return (*CACLSID)(unsafe.Pointer(&this.storage1[0])) }
  4957  func (this *PROPVARIANT) Caclipdata() *CACLIPDATA {
  4958  	return (*CACLIPDATA)(unsafe.Pointer(&this.storage1[0]))
  4959  }
  4960  func (this *PROPVARIANT) Cabstr() *CABSTR { return (*CABSTR)(unsafe.Pointer(&this.storage1[0])) }
  4961  func (this *PROPVARIANT) Cabstrblob() *CABSTRBLOB {
  4962  	return (*CABSTRBLOB)(unsafe.Pointer(&this.storage1[0]))
  4963  }
  4964  func (this *PROPVARIANT) Calpstr() *CALPSTR   { return (*CALPSTR)(unsafe.Pointer(&this.storage1[0])) }
  4965  func (this *PROPVARIANT) Calpwstr() *CALPWSTR { return (*CALPWSTR)(unsafe.Pointer(&this.storage1[0])) }
  4966  func (this *PROPVARIANT) Capropvar() *CAPROPVARIANT {
  4967  	return (*CAPROPVARIANT)(unsafe.Pointer(&this.storage1[0]))
  4968  }
  4969  func (this *PROPVARIANT) PcVal() **CHAR     { return (**CHAR)(unsafe.Pointer(&this.storage1[0])) }
  4970  func (this *PROPVARIANT) PbVal() **UCHAR    { return (**UCHAR)(unsafe.Pointer(&this.storage1[0])) }
  4971  func (this *PROPVARIANT) PiVal() **SHORT    { return (**SHORT)(unsafe.Pointer(&this.storage1[0])) }
  4972  func (this *PROPVARIANT) PuiVal() **USHORT  { return (**USHORT)(unsafe.Pointer(&this.storage1[0])) }
  4973  func (this *PROPVARIANT) PlVal() **LONG     { return (**LONG)(unsafe.Pointer(&this.storage1[0])) }
  4974  func (this *PROPVARIANT) PulVal() **ULONG   { return (**ULONG)(unsafe.Pointer(&this.storage1[0])) }
  4975  func (this *PROPVARIANT) PintVal() **INT    { return (**INT)(unsafe.Pointer(&this.storage1[0])) }
  4976  func (this *PROPVARIANT) PuintVal() **UINT  { return (**UINT)(unsafe.Pointer(&this.storage1[0])) }
  4977  func (this *PROPVARIANT) PfltVal() **FLOAT  { return (**FLOAT)(unsafe.Pointer(&this.storage1[0])) }
  4978  func (this *PROPVARIANT) PdblVal() **DOUBLE { return (**DOUBLE)(unsafe.Pointer(&this.storage1[0])) }
  4979  func (this *PROPVARIANT) PboolVal() **VARIANT_BOOL {
  4980  	return (**VARIANT_BOOL)(unsafe.Pointer(&this.storage1[0]))
  4981  }
  4982  func (this *PROPVARIANT) PdecVal() **DECIMAL { return (**DECIMAL)(unsafe.Pointer(&this.storage1[0])) }
  4983  func (this *PROPVARIANT) Pscode() **SCODE    { return (**SCODE)(unsafe.Pointer(&this.storage1[0])) }
  4984  func (this *PROPVARIANT) PcyVal() **CY       { return (**CY)(unsafe.Pointer(&this.storage1[0])) }
  4985  func (this *PROPVARIANT) Pdate() **DATE      { return (**DATE)(unsafe.Pointer(&this.storage1[0])) }
  4986  func (this *PROPVARIANT) PbstrVal() **BSTR   { return (**BSTR)(unsafe.Pointer(&this.storage1[0])) }
  4987  func (this *PROPVARIANT) PpunkVal() ***IUnknown {
  4988  	return (***IUnknown)(unsafe.Pointer(&this.storage1[0]))
  4989  }
  4990  func (this *PROPVARIANT) PpdispVal() ***IDispatch {
  4991  	return (***IDispatch)(unsafe.Pointer(&this.storage1[0]))
  4992  }
  4993  func (this *PROPVARIANT) Pparray() **LPSAFEARRAY {
  4994  	return (**LPSAFEARRAY)(unsafe.Pointer(&this.storage1[0]))
  4995  }
  4996  func (this *PROPVARIANT) PvarVal() **PROPVARIANT {
  4997  	return (**PROPVARIANT)(unsafe.Pointer(&this.storage1[0]))
  4998  }
  4999  
  5000  type PRPC_MESSAGE *RPC_MESSAGE
  5001  type PRPC_SYNTAX_IDENTIFIER *RPC_SYNTAX_IDENTIFIER
  5002  type PSAPI_WS_WATCH_INFORMATION struct {
  5003  	FaultingPc LPVOID
  5004  	FaultingVa LPVOID
  5005  }
  5006  type PSAPI_WS_WATCH_INFORMATION_EX struct {
  5007  	BasicInfo        PSAPI_WS_WATCH_INFORMATION
  5008  	FaultingThreadId ULONG_PTR
  5009  	Flags            ULONG_PTR
  5010  }
  5011  type PSECURE_MEMORY_CACHE_CALLBACK func(Addr PVOID, Range SIZE_T) BOOLEAN
  5012  type PSECURITY_DESCRIPTOR *SECURITY_DESCRIPTOR
  5013  type PSID uintptr
  5014  type PSOCKADDR_IN6 *SOCKADDR_IN6_LH
  5015  type PSOCKADDR_IN6_PAIR *SOCKADDR_IN6_PAIR
  5016  type PSPCALLBACK func(hwnd HWND, uMsg UINT, ppsp *PROPSHEETPAGE) UINT
  5017  type PSRWLOCK *RTL_SRWLOCK
  5018  type PSTR *CHAR
  5019  type PTRIVERTEX *TRIVERTEX
  5020  type PUCHAR *UCHAR
  5021  type PULONG64 *ULONG64
  5022  type PUSHORT *USHORT
  5023  type PVOID uintptr
  5024  type PWCHAR *WCHAR
  5025  type PWSTR *WCHAR
  5026  type QITAB struct {
  5027  	Piid/*const*/ *IID
  5028  	DwOffset int32
  5029  }
  5030  type QOS struct {
  5031  	SendingFlowspec   FLOWSPEC
  5032  	ReceivingFlowspec FLOWSPEC
  5033  	ProviderSpecific  WSABUF
  5034  }
  5035  type RASTERIZER_STATUS struct {
  5036  	NSize       int16
  5037  	WFlags      int16
  5038  	NLanguageID int16
  5039  }
  5040  type RAWHID struct {
  5041  	DwSizeHid uint32
  5042  	DwCount   uint32
  5043  	BRawData  [1]byte
  5044  }
  5045  type RAWINPUT struct {
  5046  	Header RAWINPUTHEADER
  5047  	Data   RAWINPUT_data
  5048  }
  5049  type RAWINPUT_data struct {
  5050  	storage [24]byte
  5051  }
  5052  
  5053  func (this *RAWINPUT_data) Mouse() *RAWMOUSE {
  5054  	return (*RAWMOUSE)(unsafe.Pointer(this))
  5055  }
  5056  func (this *RAWINPUT_data) Keyboard() *RAWKEYBOARD {
  5057  	return (*RAWKEYBOARD)(unsafe.Pointer(this))
  5058  }
  5059  func (this *RAWINPUT_data) HID() *RAWHID {
  5060  	return (*RAWHID)(unsafe.Pointer(this))
  5061  }
  5062  
  5063  type RAWINPUTDEVICE struct {
  5064  	UsUsagePage uint16
  5065  	UsUsage     uint16
  5066  	DwFlags     uint32
  5067  	HwndTarget  HWND
  5068  }
  5069  type RAWINPUTDEVICELIST struct {
  5070  	HDevice HANDLE
  5071  	DwType  uint32
  5072  }
  5073  type RAWINPUTHEADER struct {
  5074  	DwType  uint32
  5075  	DwSize  uint32
  5076  	HDevice HANDLE
  5077  	WParam  uintptr
  5078  }
  5079  type RAWKEYBOARD struct {
  5080  	MakeCode         uint16
  5081  	Flags            uint16
  5082  	Reserved         int16
  5083  	VKey             uint16
  5084  	Message          uint32
  5085  	ExtraInformation uint32
  5086  }
  5087  type RAWMOUSE struct {
  5088  	UsFlags            uint16
  5089  	padding            [2]byte
  5090  	UsButtonFlags      uint16
  5091  	UsButtonData       uint16
  5092  	UlRawButtons       uint32
  5093  	LLastX             int32
  5094  	LLastY             int32
  5095  	UlExtraInformation uint32
  5096  }
  5097  type RECT struct {
  5098  	Left, Top, Right, Bottom int32
  5099  }
  5100  type RECTFX struct {
  5101  	XLeft   FIX
  5102  	YTop    FIX
  5103  	XRight  FIX
  5104  	YBottom FIX
  5105  }
  5106  type RECTL struct {
  5107  	Left   LONG
  5108  	Top    LONG
  5109  	Right  LONG
  5110  	Bottom LONG
  5111  }
  5112  type REFCLSID /*const*/ *IID
  5113  type REFFMTID /*const*/ *IID
  5114  type REFGUID /*const*/ *GUID
  5115  type REFIID /*const*/ *IID
  5116  type REFKNOWNFOLDERID *KNOWNFOLDERID
  5117  type REFPROPVARIANT *PROPVARIANT
  5118  type REGISTERWORDENUMPROC func(lpszReading string, unnamed1 DWORD, lpszString string, unnamed3 LPVOID) int32
  5119  type REGSAM uint32
  5120  type RGBQUAD struct {
  5121  	RgbBlue     BYTE
  5122  	RgbGreen    BYTE
  5123  	RgbRed      BYTE
  5124  	RgbReserved BYTE
  5125  }
  5126  type RGNDATA struct {
  5127  	Rdh    RGNDATAHEADER
  5128  	Buffer [1]byte
  5129  }
  5130  type RGNDATAHEADER struct {
  5131  	DwSize   DWORD
  5132  	IType    DWORD
  5133  	NCount   DWORD
  5134  	NRgnSize DWORD
  5135  	RcBound  RECT
  5136  }
  5137  type ROP4 ULONG
  5138  type RPC_AUTHZ_HANDLE uintptr
  5139  type RPC_BINDING_HANDLE I_RPC_HANDLE
  5140  type RPC_MESSAGE struct {
  5141  	Handle                  RPC_BINDING_HANDLE
  5142  	DataRepresentation      uint32
  5143  	Buffer                  uintptr
  5144  	BufferLength            uint32
  5145  	ProcNum                 uint32
  5146  	TransferSyntax          PRPC_SYNTAX_IDENTIFIER
  5147  	RpcInterfaceInformation uintptr
  5148  	ReservedForRuntime      uintptr
  5149  	ManagerEpv              uintptr
  5150  	ImportContext           uintptr
  5151  	RpcFlags                uint32
  5152  }
  5153  type RPC_STATUS int32
  5154  type RPC_SYNTAX_IDENTIFIER struct {
  5155  	SyntaxGUID    GUID
  5156  	SyntaxVersion RPC_VERSION
  5157  }
  5158  type RPC_VERSION struct {
  5159  	MajorVersion uint16
  5160  	MinorVersion uint16
  5161  }
  5162  type RTL_SRWLOCK struct {
  5163  	Ptr PVOID
  5164  }
  5165  type RUN struct {
  5166  	IStart LONG
  5167  	IStop  LONG
  5168  }
  5169  type SAFEARRAY struct {
  5170  	CDims      USHORT
  5171  	FFeatures  USHORT
  5172  	CbElements ULONG
  5173  	CLocks     ULONG
  5174  	PvData     PVOID
  5175  	Rgsabound  [1]SAFEARRAYBOUND
  5176  }
  5177  type SAFEARRAYBOUND struct {
  5178  	CElements ULONG
  5179  	LLbound   LONG
  5180  }
  5181  type SAFER_LEVEL_HANDLE HANDLE
  5182  type SCODE LONG
  5183  type SCOPE_ID struct {
  5184  	Value ULONG
  5185  }
  5186  
  5187  func (this *SCOPE_ID) Zone() ULONG {
  5188  	return 0xFFFFFFF & this.Value
  5189  }
  5190  func (this *SCOPE_ID) Level() ULONG {
  5191  	return (0xF000000 & this.Value) >> (32 - 4)
  5192  }
  5193  func (this *SCOPE_ID) SetZone(v ULONG) {
  5194  	this.Value = this.Value | (0x0FFFFFFF & v)
  5195  }
  5196  func (this *SCOPE_ID) SetLevel(v ULONG) {
  5197  	this.Value = this.Value | (0xF0000000 & (v << (32 - 4)))
  5198  }
  5199  
  5200  type SCROLLBARINFO struct {
  5201  	CbSize        uint32
  5202  	RcScrollBar   RECT
  5203  	DxyLineButton int32
  5204  	XyThumbTop    int32
  5205  	XyThumbBottom int32
  5206  	Reserved      int32
  5207  	Rgstate       [CCHILDREN_SCROLLBAR + 1]uint32
  5208  }
  5209  type SCROLLINFO struct {
  5210  	CbSize    uint32
  5211  	FMask     uint32
  5212  	NMin      int32
  5213  	NMax      int32
  5214  	NPage     uint32
  5215  	NPos      int32
  5216  	NTrackPos int32
  5217  }
  5218  type SC_HANDLE HANDLE
  5219  type SC_LOCK uintptr
  5220  type SECURITY_ATTRIBUTES struct {
  5221  	NLength              uint32
  5222  	LpSecurityDescriptor uintptr
  5223  	BInheritHandle       BOOL
  5224  }
  5225  type SECURITY_CONTEXT_TRACKING_MODE BOOLEAN
  5226  type SECURITY_DESCRIPTOR struct {
  5227  	Revision byte
  5228  	Sbz1     byte
  5229  	Control  SECURITY_DESCRIPTOR_CONTROL
  5230  	Owner    PSID
  5231  	Group    PSID
  5232  	Sacl     *ACL
  5233  	Dacl     *ACL
  5234  }
  5235  type SECURITY_DESCRIPTOR_CONTROL uint16
  5236  type SECURITY_INFORMATION ULONG
  5237  type SECURITY_QUALITY_OF_SERVICE struct {
  5238  	storage [12]byte
  5239  }
  5240  
  5241  func (this *SECURITY_QUALITY_OF_SERVICE) Length() *DWORD {
  5242  	return (*DWORD)(unsafe.Pointer(&this.storage[0]))
  5243  }
  5244  func (this *SECURITY_QUALITY_OF_SERVICE) ImpersonationLevel() *SECURITY_IMPERSONATION_LEVEL {
  5245  	return (*SECURITY_IMPERSONATION_LEVEL)(unsafe.Pointer(&this.storage[4]))
  5246  }
  5247  func (this *SECURITY_QUALITY_OF_SERVICE) ContextTrackingMode() *SECURITY_CONTEXT_TRACKING_MODE {
  5248  	return (*SECURITY_CONTEXT_TRACKING_MODE)(unsafe.Pointer(&this.storage[8]))
  5249  }
  5250  func (this *SECURITY_QUALITY_OF_SERVICE) EffectiveOnly() *BOOLEAN {
  5251  	return (*BOOLEAN)(unsafe.Pointer(&this.storage[9]))
  5252  }
  5253  
  5254  type SENDASYNCPROC func(hwnd HWND, uMsg uint32, dwData uintptr, lResult LRESULT)
  5255  type SERVICE_STATUS struct {
  5256  	DwServiceType             DWORD
  5257  	DwCurrentState            DWORD
  5258  	DwControlsAccepted        DWORD
  5259  	DwWin32ExitCode           DWORD
  5260  	DwServiceSpecificExitCode DWORD
  5261  	DwCheckPoint              DWORD
  5262  	DwWaitHint                DWORD
  5263  }
  5264  type SERVICE_STATUS_HANDLE HANDLE
  5265  type SFV_CREATE struct {
  5266  	CbSize   UINT
  5267  	Pshf     *IShellFolder
  5268  	PsvOuter *IShellView
  5269  	Psfvcb   *IShellFolderViewCB
  5270  }
  5271  type SHChangeNotifyEntry struct {
  5272  	storage1 [ptrsize + 4]byte
  5273  }
  5274  
  5275  func (this *SHChangeNotifyEntry) Pidl() *PCIDLIST_ABSOLUTE {
  5276  	return (*PCIDLIST_ABSOLUTE)(unsafe.Pointer(&this.storage1[0]))
  5277  }
  5278  func (this *SHChangeNotifyEntry) FRecursive() *BOOL {
  5279  	return (*BOOL)(unsafe.Pointer(&this.storage1[ptrsize]))
  5280  }
  5281  
  5282  type SHELLFLAGSTATE struct {
  5283  	storage1 BOOL
  5284  }
  5285  
  5286  func (this *SHELLFLAGSTATE) FShowAllObjects() BOOL {
  5287  	return BOOL(0x1 & (this.storage1 >> 31))
  5288  }
  5289  func (this *SHELLFLAGSTATE) FShowExtensions() BOOL {
  5290  	return BOOL(0x1 & (this.storage1 >> 30))
  5291  }
  5292  func (this *SHELLFLAGSTATE) FNoConfirmRecycle() BOOL {
  5293  	return BOOL(0x1 & (this.storage1 >> 29))
  5294  }
  5295  func (this *SHELLFLAGSTATE) FShowSysFiles() BOOL {
  5296  	return BOOL(0x1 & (this.storage1 >> 28))
  5297  }
  5298  func (this *SHELLFLAGSTATE) FShowCompColor() BOOL {
  5299  	return BOOL(0x1 & (this.storage1 >> 27))
  5300  }
  5301  func (this *SHELLFLAGSTATE) FDoubleClickInWebView() BOOL {
  5302  	return BOOL(0x1 & (this.storage1 >> 26))
  5303  }
  5304  func (this *SHELLFLAGSTATE) FDesktopHTML() BOOL {
  5305  	return BOOL(0x1 & (this.storage1 >> 25))
  5306  }
  5307  func (this *SHELLFLAGSTATE) FWin95Classic() BOOL {
  5308  	return BOOL(0x1 & (this.storage1 >> 24))
  5309  }
  5310  func (this *SHELLFLAGSTATE) FDontPrettyPath() BOOL {
  5311  	return BOOL(0x1 & (this.storage1 >> 23))
  5312  }
  5313  func (this *SHELLFLAGSTATE) FShowAttribCol() BOOL {
  5314  	return BOOL(0x1 & (this.storage1 >> 22))
  5315  }
  5316  func (this *SHELLFLAGSTATE) FMapNetDrvBtn() BOOL {
  5317  	return BOOL(0x1 & (this.storage1 >> 21))
  5318  }
  5319  func (this *SHELLFLAGSTATE) FShowInfoTip() BOOL {
  5320  	return BOOL(0x1 & (this.storage1 >> 20))
  5321  }
  5322  func (this *SHELLFLAGSTATE) FHideIcons() BOOL {
  5323  	return BOOL(0x1 & (this.storage1 >> 19))
  5324  }
  5325  func (this *SHELLFLAGSTATE) FAutoCheckSelect() BOOL {
  5326  	return BOOL(0x1 & (this.storage1 >> 18))
  5327  }
  5328  func (this *SHELLFLAGSTATE) FIconsOnly() BOOL {
  5329  	return BOOL(0x1 & (this.storage1 >> 17))
  5330  }
  5331  
  5332  type SHELLSTATE struct {
  5333  	storage1       BOOL
  5334  	DwWin95Unused  DWORD
  5335  	UWin95Unused   UINT
  5336  	LParamSort     LONG
  5337  	ISortDirection int32
  5338  	Version        UINT
  5339  	UNotUsed       UINT
  5340  	storage2       uint8
  5341  	storage3       uint16
  5342  }
  5343  
  5344  func (this *SHELLSTATE) FShowAllObjects() BOOL {
  5345  	return BOOL(0x1 & (this.storage1 >> 31))
  5346  }
  5347  func (this *SHELLSTATE) FShowExtensions() BOOL {
  5348  	return BOOL(0x1 & (this.storage1 >> 30))
  5349  }
  5350  func (this *SHELLSTATE) FNoConfirmRecycle() BOOL {
  5351  	return BOOL(0x1 & (this.storage1 >> 29))
  5352  }
  5353  func (this *SHELLSTATE) FShowSysFiles() BOOL {
  5354  	return BOOL(0x1 & (this.storage1 >> 28))
  5355  }
  5356  func (this *SHELLSTATE) FShowCompColor() BOOL {
  5357  	return BOOL(0x1 & (this.storage1 >> 27))
  5358  }
  5359  func (this *SHELLSTATE) FDoubleClickInWebView() BOOL {
  5360  	return BOOL(0x1 & (this.storage1 >> 26))
  5361  }
  5362  func (this *SHELLSTATE) FDesktopHTML() BOOL {
  5363  	return BOOL(0x1 & (this.storage1 >> 25))
  5364  }
  5365  func (this *SHELLSTATE) FWin95Classic() BOOL {
  5366  	return BOOL(0x1 & (this.storage1 >> 24))
  5367  }
  5368  func (this *SHELLSTATE) FDontPrettyPath() BOOL {
  5369  	return BOOL(0x1 & (this.storage1 >> 23))
  5370  }
  5371  func (this *SHELLSTATE) FShowAttribCol() BOOL {
  5372  	return BOOL(0x1 & (this.storage1 >> 22))
  5373  }
  5374  func (this *SHELLSTATE) FMapNetDrvBtn() BOOL {
  5375  	return BOOL(0x1 & (this.storage1 >> 21))
  5376  }
  5377  func (this *SHELLSTATE) FShowInfoTip() BOOL {
  5378  	return BOOL(0x1 & (this.storage1 >> 20))
  5379  }
  5380  func (this *SHELLSTATE) FHideIcons() BOOL {
  5381  	return BOOL(0x1 & (this.storage1 >> 19))
  5382  }
  5383  func (this *SHELLSTATE) FWebView() BOOL {
  5384  	return BOOL(0x1 & (this.storage1 >> 18))
  5385  }
  5386  func (this *SHELLSTATE) FFilter() BOOL {
  5387  	return BOOL(0x1 & (this.storage1 >> 17))
  5388  }
  5389  func (this *SHELLSTATE) FShowSuperHidden() BOOL {
  5390  	return BOOL(0x1 & (this.storage1 >> 16))
  5391  }
  5392  func (this *SHELLSTATE) FNoNetCrawling() BOOL {
  5393  	return BOOL(0x1 & (this.storage1 >> 15))
  5394  }
  5395  func (this *SHELLSTATE) FSepProcess() BOOL {
  5396  	return BOOL(0x1 & (this.storage2 >> 15))
  5397  }
  5398  func (this *SHELLSTATE) FStartPanelOn() BOOL {
  5399  	return BOOL(0x1 & (this.storage2 >> 14))
  5400  }
  5401  func (this *SHELLSTATE) FShowStartPage() BOOL {
  5402  	return BOOL(0x1 & (this.storage2 >> 13))
  5403  }
  5404  func (this *SHELLSTATE) FAutoCheckSelect() BOOL {
  5405  	return BOOL(0x1 & (this.storage2 >> 12))
  5406  }
  5407  func (this *SHELLSTATE) FIconsOnly() BOOL {
  5408  	return BOOL(0x1 & (this.storage2 >> 11))
  5409  }
  5410  func (this *SHELLSTATE) FShowTypeOverlay() BOOL {
  5411  	return BOOL(0x1 & (this.storage2 >> 10))
  5412  }
  5413  func (this *SHELLSTATE) FShowStatusBar() BOOL {
  5414  	return BOOL(0x1 & (this.storage2 >> 9))
  5415  }
  5416  func (this *SHELLSTATE) FSpareFlags() UINT {
  5417  	return UINT(0x1FF & (this.storage3 >> 7))
  5418  }
  5419  
  5420  type SHFILEINFO struct {
  5421  	HIcon         HICON
  5422  	IIcon         int32
  5423  	DwAttributes  DWORD
  5424  	SzDisplayName [MAX_PATH]WCHAR
  5425  	SzTypeName    [80]WCHAR
  5426  }
  5427  type SHFILEOPSTRUCT struct {
  5428  	storage [ptrsize*5 + 10 + pad6for64_0for32]byte
  5429  }
  5430  
  5431  func (this *SHFILEOPSTRUCT) Hwnd() *HWND {
  5432  	return (*HWND)(unsafe.Pointer(&this.storage[0]))
  5433  }
  5434  func (this *SHFILEOPSTRUCT) WFunc() *UINT {
  5435  	return (*UINT)(unsafe.Pointer(&this.storage[ptrsize]))
  5436  }
  5437  func (this *SHFILEOPSTRUCT) PFrom() *PCZZWSTR {
  5438  	return (*PCZZWSTR)(unsafe.Pointer(&this.storage[ptrsize+4+pad4for64_0for32]))
  5439  }
  5440  func (this *SHFILEOPSTRUCT) PTo() *PCZZWSTR {
  5441  	return (*PCZZWSTR)(unsafe.Pointer(&this.storage[ptrsize*2+4+pad4for64_0for32]))
  5442  }
  5443  func (this *SHFILEOPSTRUCT) FFlags() *FILEOP_FLAGS {
  5444  	return (*FILEOP_FLAGS)(unsafe.Pointer(&this.storage[ptrsize*3+4+pad4for64_0for32]))
  5445  }
  5446  func (this *SHFILEOPSTRUCT) FAnyOperationsAborted() *BOOL {
  5447  	return (*BOOL)(unsafe.Pointer(&this.storage[ptrsize*3+6+pad6for64_0for32]))
  5448  }
  5449  func (this *SHFILEOPSTRUCT) HNameMappings() *LPVOID {
  5450  	return (*LPVOID)(unsafe.Pointer(&this.storage[ptrsize*3+10+pad6for64_0for32]))
  5451  }
  5452  func (this *SHFILEOPSTRUCT) LpszProgressTitle() *PCWSTR {
  5453  	return (*PCWSTR)(unsafe.Pointer(&this.storage[ptrsize*4+10+pad6for64_0for32]))
  5454  }
  5455  
  5456  type SHITEMID struct {
  5457  	storage [3]byte
  5458  }
  5459  
  5460  func (this *SHITEMID) Cb() *USHORT {
  5461  	return (*USHORT)(unsafe.Pointer(&this.storage[0]))
  5462  }
  5463  func (this *SHITEMID) AbID() *BYTE {
  5464  	return (*BYTE)(unsafe.Pointer(&this.storage[2]))
  5465  }
  5466  
  5467  type SHORT int16
  5468  type SHQUERYRBINFO struct {
  5469  	CbSize      DWORD
  5470  	I64Size     int64
  5471  	I64NumItems int64
  5472  }
  5473  type SHSTOCKICONINFO struct {
  5474  	CbSize         DWORD
  5475  	HIcon          HICON
  5476  	ISysImageIndex int32
  5477  	IIcon          int32
  5478  	SzPath         [MAX_PATH]WCHAR
  5479  }
  5480  type SID struct {
  5481  	Revision            UCHAR
  5482  	SubAuthorityCount   UCHAR
  5483  	IdentifierAuthority SID_IDENTIFIER_AUTHORITY
  5484  	SubAuthority        [ANYSIZE_ARRAY]ULONG
  5485  }
  5486  type SID_AND_ATTRIBUTES struct {
  5487  	Sid        PSID
  5488  	Attributes ULONG
  5489  }
  5490  type SID_IDENTIFIER_AUTHORITY struct {
  5491  	Value [6]UCHAR
  5492  }
  5493  type SFGAOF ULONG
  5494  type SIZE struct {
  5495  	Cx, Cy int32
  5496  }
  5497  type SIZEL SIZE
  5498  type SMALL_RECT struct {
  5499  	Left   SHORT
  5500  	Top    SHORT
  5501  	Right  SHORT
  5502  	Bottom SHORT
  5503  }
  5504  type SOCKADDR struct {
  5505  	Sa_family ADDRESS_FAMILY
  5506  	Sa_data   [14]CHAR
  5507  }
  5508  type SOCKADDR_IN struct {
  5509  	Sin_family ADDRESS_FAMILY
  5510  	Sin_port   USHORT
  5511  	Sin_addr   IN_ADDR
  5512  	Sin_zero   [8]CHAR
  5513  }
  5514  type SOCKADDR_IN6 SOCKADDR_IN6_LH
  5515  type SOCKADDR_IN6_LH struct {
  5516  	sin6_family   ADDRESS_FAMILY
  5517  	sin6_port     USHORT
  5518  	sin6_flowinfo ULONG
  5519  	sin6_addr     IN6_ADDR
  5520  	union1        ULONG
  5521  }
  5522  
  5523  func (this *SOCKADDR_IN6_LH) Sin6_scope_id() *ULONG {
  5524  	return (*ULONG)(unsafe.Pointer(&this.union1))
  5525  }
  5526  func (this *SOCKADDR_IN6_LH) Sin6_scope_struct() *SCOPE_ID {
  5527  	return (*SCOPE_ID)(unsafe.Pointer(&this.union1))
  5528  }
  5529  
  5530  type SOCKADDR_IN6_PAIR struct {
  5531  	SourceAddress      PSOCKADDR_IN6
  5532  	DestinationAddress PSOCKADDR_IN6
  5533  }
  5534  type SOCKET UINT_PTR
  5535  type SOCKET_ADDRESS struct {
  5536  	LpSockaddr      LPSOCKADDR
  5537  	ISockaddrLength INT
  5538  }
  5539  type SOLE_AUTHENTICATION_SERVICE struct {
  5540  	DwAuthnSvc     DWORD
  5541  	DwAuthzSvc     DWORD
  5542  	PPrincipalName *OLECHAR
  5543  	Hr             HRESULT
  5544  }
  5545  type STARTUPINFO struct {
  5546  	Cb              DWORD
  5547  	LpReserved      LPWSTR
  5548  	LpDesktop       LPWSTR
  5549  	LpTitle         LPWSTR
  5550  	DwX             DWORD
  5551  	DwY             DWORD
  5552  	DwXSize         DWORD
  5553  	DwYSize         DWORD
  5554  	DwXCountChars   DWORD
  5555  	DwYCountChars   DWORD
  5556  	DwFillAttribute DWORD
  5557  	DwFlags         DWORD
  5558  	WShowWindow     WORD
  5559  	CbReserved2     WORD
  5560  	LpReserved2     LPBYTE
  5561  	HStdInput       HANDLE
  5562  	HStdOutput      HANDLE
  5563  	HStdError       HANDLE
  5564  }
  5565  type STGMEDIUM struct {
  5566  	Tymed          DWORD
  5567  	union1         uintptr
  5568  	PUnkForRelease *IUnknown
  5569  }
  5570  
  5571  func (this *STGMEDIUM) GetHBitmap() HBITMAP {
  5572  	return *(*HBITMAP)(unsafe.Pointer(&this.union1))
  5573  }
  5574  func (this *STGMEDIUM) SetHBitmap(v HBITMAP) {
  5575  	*(*HBITMAP)(unsafe.Pointer(&this.union1)) = v
  5576  }
  5577  func (this *STGMEDIUM) GetHMetaFilePict() HMETAFILEPICT {
  5578  	return *(*HMETAFILEPICT)(unsafe.Pointer(&this.union1))
  5579  }
  5580  func (this *STGMEDIUM) SetHMetaFilePict(v HMETAFILEPICT) {
  5581  	*(*HMETAFILEPICT)(unsafe.Pointer(&this.union1)) = v
  5582  }
  5583  func (this *STGMEDIUM) GetHEnhMetaFile() HENHMETAFILE {
  5584  	return *(*HENHMETAFILE)(unsafe.Pointer(&this.union1))
  5585  }
  5586  func (this *STGMEDIUM) SetHEnhMetaFile(v HENHMETAFILE) {
  5587  	*(*HENHMETAFILE)(unsafe.Pointer(&this.union1)) = v
  5588  }
  5589  func (this *STGMEDIUM) GetHGlobal() HGLOBAL {
  5590  	return *(*HGLOBAL)(unsafe.Pointer(&this.union1))
  5591  }
  5592  func (this *STGMEDIUM) SetHGlobal(v HGLOBAL) {
  5593  	*(*HGLOBAL)(unsafe.Pointer(&this.union1)) = v
  5594  }
  5595  func (this *STGMEDIUM) GetLpszFileName() LPOLESTR {
  5596  	return *(*LPOLESTR)(unsafe.Pointer(&this.union1))
  5597  }
  5598  func (this *STGMEDIUM) SetLpszFileName(v LPOLESTR) {
  5599  	*(*LPOLESTR)(unsafe.Pointer(&this.union1)) = v
  5600  }
  5601  func (this *STGMEDIUM) GetPstm() *IStream {
  5602  	return *(**IStream)(unsafe.Pointer(&this.union1))
  5603  }
  5604  func (this *STGMEDIUM) SetPstm(v *IStream) {
  5605  	*(**IStream)(unsafe.Pointer(&this.union1)) = v
  5606  }
  5607  func (this *STGMEDIUM) GetPstg() *IStorage {
  5608  	return *(**IStorage)(unsafe.Pointer(&this.union1))
  5609  }
  5610  func (this *STGMEDIUM) SetPstg(v *IStorage) {
  5611  	*(**IStorage)(unsafe.Pointer(&this.union1)) = v
  5612  }
  5613  
  5614  type STROBJ struct {
  5615  	CGlyphs     ULONG
  5616  	FlAccel     FLONG
  5617  	UlCharInc   ULONG
  5618  	RclBkGround RECTL
  5619  	Pgp         *GLYPHPOS
  5620  	PwszOrg     LPWSTR
  5621  }
  5622  
  5623  func (this *STRRET) POleStr() *LPWSTR {
  5624  	return (*LPWSTR)(unsafe.Pointer(&this.cStr[0]))
  5625  }
  5626  func (this *STRRET) UOffset() *UINT {
  5627  	return (*UINT)(unsafe.Pointer(&this.cStr[0]))
  5628  }
  5629  func (this *STRRET) CStr() **byte {
  5630  	return (**byte)(unsafe.Pointer(&this.cStr[0]))
  5631  }
  5632  
  5633  type STYLEBUF struct {
  5634  	DwStyle       DWORD
  5635  	SzDescription [STYLE_DESCRIPTION_SIZE]WCHAR
  5636  }
  5637  type SUBCLASSPROC func(hWnd HWND, uMsg UINT, wParam WPARAM, lParam LPARAM, uIdSubclass UINT_PTR, dwRefData DWORD_PTR) LRESULT
  5638  type SURFOBJ struct {
  5639  	Dhsurf        DHSURF
  5640  	Hsurf         HSURF
  5641  	Dhpdev        DHPDEV
  5642  	Hdev          HDEV
  5643  	SizlBitmap    SIZEL
  5644  	CjBits        ULONG
  5645  	PvBits        PVOID
  5646  	PvScan0       PVOID
  5647  	LDelta        LONG
  5648  	IUniq         ULONG
  5649  	IBitmapFormat ULONG
  5650  	IType         USHORT
  5651  	FjBitmap      USHORT
  5652  }
  5653  type SYSTEMTIME struct {
  5654  	WYear         WORD
  5655  	WMonth        WORD
  5656  	WDayOfWeek    WORD
  5657  	WDay          WORD
  5658  	WHour         WORD
  5659  	WMinute       WORD
  5660  	WSecond       WORD
  5661  	WMilliseconds WORD
  5662  }
  5663  type SYSTEM_INFO struct {
  5664  	WProcessorArchitecture      uint16
  5665  	WReserved                   uint16
  5666  	DwPageSize                  uint32
  5667  	LpMinimumApplicationAddress uintptr
  5668  	LpMaximumApplicationAddress uintptr
  5669  	DwActiveProcessorMask       uintptr
  5670  	DwNumberOfProcessors        uint32
  5671  	DwProcessorType             uint32
  5672  	DwAllocationGranularity     uint32
  5673  	WProcessorLevel             uint16
  5674  	WProcessorRevision          uint16
  5675  }
  5676  type Sockaddr struct {
  5677  	Sa_family uint16
  5678  	Sa_data   [14]CHAR
  5679  }
  5680  type Socklen_t int32
  5681  type Status GpStatus
  5682  type TASKCALLBACK func(dwInst DWORD_PTR)
  5683  type TASKDIALOGCALLBACK func(hwnd HWND, msg UINT, wParam WPARAM, lParam LPARAM, lpRefData LONG_PTR) HRESULT
  5684  type TASKDIALOG_BUTTON struct {
  5685  	storage [4 * pad3for64_2for32]byte
  5686  }
  5687  
  5688  func (this *TASKDIALOG_BUTTON) NButtonID() *int32 {
  5689  	return (*int32)(unsafe.Pointer(&this.storage[0]))
  5690  }
  5691  func (this *TASKDIALOG_BUTTON) PszButtonText() *PCWSTR {
  5692  	return (*PCWSTR)(unsafe.Pointer(&this.storage[4]))
  5693  }
  5694  
  5695  type TBBUTTON struct {
  5696  	IBitmap   int32
  5697  	IdCommand int32
  5698  	FsState   byte
  5699  	FsStyle   byte
  5700  	BReserved [2 * pad3for64_1for32]byte
  5701  	DwData    *DWORD
  5702  	IString   uintptr
  5703  }
  5704  type TEXTMETRIC struct {
  5705  	TmHeight           LONG
  5706  	TmAscent           LONG
  5707  	TmDescent          LONG
  5708  	TmInternalLeading  LONG
  5709  	TmExternalLeading  LONG
  5710  	TmAveCharWidth     LONG
  5711  	TmMaxCharWidth     LONG
  5712  	TmWeight           LONG
  5713  	TmOverhang         LONG
  5714  	TmDigitizedAspectX LONG
  5715  	TmDigitizedAspectY LONG
  5716  	TmFirstChar        WCHAR
  5717  	TmLastChar         WCHAR
  5718  	TmDefaultChar      WCHAR
  5719  	TmBreakChar        WCHAR
  5720  	TmItalic           BYTE
  5721  	TmUnderlined       BYTE
  5722  	TmStruckOut        BYTE
  5723  	TmPitchAndFamily   BYTE
  5724  	TmCharSet          BYTE
  5725  }
  5726  type THREAD_START_ROUTINE func(lpThreadParameter LPVOID) DWORD
  5727  type TIMECALLBACK func(uTimerID UINT, uMsg UINT, dwUser DWORD_PTR, dw1 DWORD_PTR, dw2 DWORD_PTR)
  5728  type TIMECAPS struct {
  5729  	WPeriodMin UINT
  5730  	WPeriodMax UINT
  5731  }
  5732  type TIMERPROC func(hwnd HWND, uMsg uint32, idEvent uintptr, dwTime uint32)
  5733  type TITLEBARINFO struct {
  5734  	CbSize     uint32
  5735  	RcTitleBar RECT
  5736  	Rgstate    [CCHILDREN_TITLEBAR + 1]uint32
  5737  }
  5738  type TOKEN_GROUPS struct {
  5739  	GroupCount ULONG
  5740  	Groups     [ANYSIZE_ARRAY]SID_AND_ATTRIBUTES
  5741  }
  5742  type TOKEN_PRIVILEGES struct {
  5743  	PrivilegeCount ULONG
  5744  	Privileges     [ANYSIZE_ARRAY]LUID_AND_ATTRIBUTES
  5745  }
  5746  type TOUCHINPUT struct {
  5747  	X           int32 // LONG
  5748  	Y           int32 // LONG
  5749  	HSource     HANDLE
  5750  	DwID        uint32
  5751  	DwFlags     uint32
  5752  	DwMask      uint32
  5753  	DwTime      uint32
  5754  	DwExtraInfo uintptr // ULONG_PTR
  5755  	CxContact   uint32
  5756  	CyContact   uint32
  5757  }
  5758  type TPMPARAMS struct {
  5759  	CbSize    uint32
  5760  	RcExclude RECT
  5761  }
  5762  type TRACKMOUSEEVENT struct {
  5763  	CbSize      uint32
  5764  	DwFlags     uint32
  5765  	HwndTrack   HWND
  5766  	DwHoverTime uint32
  5767  }
  5768  type TRIVERTEX struct {
  5769  	X     LONG
  5770  	Y     LONG
  5771  	Red   COLOR16
  5772  	Green COLOR16
  5773  	Blue  COLOR16
  5774  	Alpha COLOR16
  5775  }
  5776  type TRUSTEE struct {
  5777  	PMultipleTrustee         *TRUSTEE
  5778  	MultipleTrusteeOperation MULTIPLE_TRUSTEE_OPERATION
  5779  	TrusteeForm              TRUSTEE_FORM
  5780  	TrusteeType              TRUSTEE_TYPE
  5781  	PtstrName                LPWSTR
  5782  }
  5783  type Time_t int64
  5784  type Timeval struct {
  5785  	Tv_sec  int32
  5786  	Tv_usec int32
  5787  }
  5788  type UCHAR byte
  5789  type UDATE struct {
  5790  	St         SYSTEMTIME
  5791  	WDayOfYear USHORT
  5792  }
  5793  type UINT uint32
  5794  type UINT8 uint8
  5795  type UINT_PTR uintptr
  5796  type ULARGE_INTEGER struct {
  5797  	QuadPart ULONGLONG
  5798  }
  5799  type ULONG uint32
  5800  type ULONG64 uint64
  5801  type ULONGLONG uint64
  5802  type ULONG_PTR *uint32
  5803  type UPDATELAYEREDWINDOWINFO struct {
  5804  	CbSize   uint32
  5805  	HdcDst   HDC
  5806  	PptDst   *POINT // const POINT*
  5807  	Psize    *SIZE  // const SIZE*
  5808  	HdcSrc   HDC
  5809  	PptSrc   *POINT // const POINT*
  5810  	CrKey    COLORREF
  5811  	Pblend   uintptr // const BLENDFUNCTION*
  5812  	DwFlags  uint32
  5813  	PrcDirty *RECT // const RECT*
  5814  }
  5815  type USER_MARSHAL_FREEING_ROUTINE func(unnamed0 *uint32, unnamed1 uintptr)
  5816  type USER_MARSHAL_MARSHALLING_ROUTINE func(unnamed0 *uint32, unnamed1 *byte, unnamed2 uintptr) *byte
  5817  type USER_MARSHAL_ROUTINE_QUADRUPLE struct {
  5818  	PfnBufferSize uintptr // USER_MARSHAL_SIZING_ROUTINE
  5819  	PfnMarshall   uintptr // USER_MARSHAL_MARSHALLING_ROUTINE
  5820  	PfnUnmarshall uintptr // USER_MARSHAL_UNMARSHALLING_ROUTINE
  5821  	PfnFree       uintptr // USER_MARSHAL_FREEING_ROUTINE
  5822  }
  5823  type USER_MARSHAL_SIZING_ROUTINE func(unnamed0 *uint32, unnamed1 uint32, unnamed2 uintptr) uint32
  5824  type USER_MARSHAL_UNMARSHALLING_ROUTINE func(unnamed0 *uint32, unnamed1 *byte, unnamed2 uintptr) *byte
  5825  type USHORT uint16
  5826  
  5827  func (this *VARIANT) Vt() *VARTYPE {
  5828  	return (*VARTYPE)(unsafe.Pointer(&this.union1[0]))
  5829  }
  5830  func (this *VARIANT) WReserved1() *WORD {
  5831  	return (*WORD)(unsafe.Pointer(&this.union1[2]))
  5832  }
  5833  func (this *VARIANT) WReserved2() *WORD {
  5834  	return (*WORD)(unsafe.Pointer(&this.union1[4]))
  5835  }
  5836  func (this *VARIANT) WReserved3() *WORD {
  5837  	return (*WORD)(unsafe.Pointer(&this.union1[6]))
  5838  }
  5839  func (this *VARIANT) LlVal() *LONGLONG        { return (*LONGLONG)(unsafe.Pointer(&this.union1[8])) }
  5840  func (this *VARIANT) LVal() *LONG             { return (*LONG)(unsafe.Pointer(&this.union1[8])) }
  5841  func (this *VARIANT) BVal() *BYTE             { return (*BYTE)(unsafe.Pointer(&this.union1[8])) }
  5842  func (this *VARIANT) IVal() *SHORT            { return (*SHORT)(unsafe.Pointer(&this.union1[8])) }
  5843  func (this *VARIANT) FltVal() *FLOAT          { return (*FLOAT)(unsafe.Pointer(&this.union1[8])) }
  5844  func (this *VARIANT) DblVal() *DOUBLE         { return (*DOUBLE)(unsafe.Pointer(&this.union1[8])) }
  5845  func (this *VARIANT) BoolVal() *VARIANT_BOOL  { return (*VARIANT_BOOL)(unsafe.Pointer(&this.union1[8])) }
  5846  func (this *VARIANT) Scode() *SCODE           { return (*SCODE)(unsafe.Pointer(&this.union1[8])) }
  5847  func (this *VARIANT) CyVal() *CY              { return (*CY)(unsafe.Pointer(&this.union1[8])) }
  5848  func (this *VARIANT) Date() *DATE             { return (*DATE)(unsafe.Pointer(&this.union1[8])) }
  5849  func (this *VARIANT) BstrVal() *BSTR          { return (*BSTR)(unsafe.Pointer(&this.union1[8])) }
  5850  func (this *VARIANT) PunkVal() *IUnknown      { return (*IUnknown)(unsafe.Pointer(&this.union1[8])) }
  5851  func (this *VARIANT) PdispVal() *IDispatch    { return (*IDispatch)(unsafe.Pointer(&this.union1[8])) }
  5852  func (this *VARIANT) Parray() *SAFEARRAY      { return (*SAFEARRAY)(unsafe.Pointer(&this.union1[8])) }
  5853  func (this *VARIANT) PbVal() *BYTE            { return (*BYTE)(unsafe.Pointer(&this.union1[8])) }
  5854  func (this *VARIANT) PiVal() *SHORT           { return (*SHORT)(unsafe.Pointer(&this.union1[8])) }
  5855  func (this *VARIANT) PlVal() *LONG            { return (*LONG)(unsafe.Pointer(&this.union1[8])) }
  5856  func (this *VARIANT) PllVal() *LONGLONG       { return (*LONGLONG)(unsafe.Pointer(&this.union1[8])) }
  5857  func (this *VARIANT) PfltVal() *FLOAT         { return (*FLOAT)(unsafe.Pointer(&this.union1[8])) }
  5858  func (this *VARIANT) PdblVal() *DOUBLE        { return (*DOUBLE)(unsafe.Pointer(&this.union1[8])) }
  5859  func (this *VARIANT) PboolVal() *VARIANT_BOOL { return (*VARIANT_BOOL)(unsafe.Pointer(&this.union1[8])) }
  5860  func (this *VARIANT) Pscode() *SCODE          { return (*SCODE)(unsafe.Pointer(&this.union1[8])) }
  5861  func (this *VARIANT) PcyVal() *CY             { return (*CY)(unsafe.Pointer(&this.union1[8])) }
  5862  func (this *VARIANT) Pdate() *DATE            { return (*DATE)(unsafe.Pointer(&this.union1[8])) }
  5863  func (this *VARIANT) PbstrVal() *BSTR         { return (*BSTR)(unsafe.Pointer(&this.union1[8])) }
  5864  func (this *VARIANT) PpunkVal() **IUnknown    { return (**IUnknown)(unsafe.Pointer(&this.union1[8])) }
  5865  func (this *VARIANT) PpdispVal() **IDispatch  { return (**IDispatch)(unsafe.Pointer(&this.union1[8])) }
  5866  func (this *VARIANT) Pparray() **SAFEARRAY    { return (**SAFEARRAY)(unsafe.Pointer(&this.union1[8])) }
  5867  func (this *VARIANT) PvarVal() *VARIANT       { return (*VARIANT)(unsafe.Pointer(&this.union1[8])) }
  5868  func (this *VARIANT) Byref() PVOID            { return (PVOID)(unsafe.Pointer(&this.union1[8])) }
  5869  func (this *VARIANT) CVal() CHAR              { return *(*CHAR)(unsafe.Pointer(&this.union1[8])) }
  5870  func (this *VARIANT) UiVal() USHORT           { return *(*USHORT)(unsafe.Pointer(&this.union1[8])) }
  5871  func (this *VARIANT) UlVal() ULONG            { return *(*ULONG)(unsafe.Pointer(&this.union1[8])) }
  5872  func (this *VARIANT) UllVal() ULONGLONG       { return *(*ULONGLONG)(unsafe.Pointer(&this.union1[8])) }
  5873  func (this *VARIANT) IntVal() INT             { return *(*INT)(unsafe.Pointer(&this.union1[8])) }
  5874  func (this *VARIANT) UintVal() UINT           { return *(*UINT)(unsafe.Pointer(&this.union1[8])) }
  5875  func (this *VARIANT) PdecVal() *DECIMAL       { return (*DECIMAL)(unsafe.Pointer(&this.union1[8])) }
  5876  func (this *VARIANT) PcVal() *CHAR            { return (*CHAR)(unsafe.Pointer(&this.union1[8])) }
  5877  func (this *VARIANT) PuiVal() *USHORT         { return (*USHORT)(unsafe.Pointer(&this.union1[8])) }
  5878  func (this *VARIANT) PulVal() *ULONG          { return (*ULONG)(unsafe.Pointer(&this.union1[8])) }
  5879  func (this *VARIANT) PullVal() *ULONGLONG     { return (*ULONGLONG)(unsafe.Pointer(&this.union1[8])) }
  5880  func (this *VARIANT) PintVal() *INT           { return (*INT)(unsafe.Pointer(&this.union1[8])) }
  5881  func (this *VARIANT) PuintVal() *UINT         { return (*UINT)(unsafe.Pointer(&this.union1[8])) }
  5882  func (this *VARIANT) PvRecord() PVOID {
  5883  	return (PVOID)(unsafe.Pointer(&this.union1[8]))
  5884  }
  5885  func (this *VARIANT) DecVal() DECIMAL {
  5886  	return *(*DECIMAL)(unsafe.Pointer(&this.union1[0]))
  5887  }
  5888  func unpackVARIANT(v VARIANT) []uintptr {
  5889  	size := int(unsafe.Sizeof(v))
  5890  	size += size % 4
  5891  	step := 4
  5892  	n := size / step
  5893  	ret := []uintptr{}
  5894  	ptr := uintptr(unsafe.Pointer(&v))
  5895  	for i := 0; i < n; i++ {
  5896  		ret = append(ret, *(*uintptr)(unsafe.Pointer(ptr + uintptr(step*i))))
  5897  	}
  5898  	return ret
  5899  }
  5900  
  5901  type VARIANTARG VARIANT
  5902  type VARIANT_BOOL int16
  5903  type VARTYPE uint16
  5904  type VERSIONEDSTREAM struct {
  5905  	GuidVersion GUID
  5906  	PStream     *IStream
  5907  }
  5908  type WAVEFORMATEX struct {
  5909  	storage [18]byte
  5910  }
  5911  
  5912  func (this *WAVEFORMATEX) WFormatTag() *WORD {
  5913  	return (*WORD)(unsafe.Pointer(&this.storage[0]))
  5914  }
  5915  func (this *WAVEFORMATEX) NChannels() *WORD {
  5916  	return (*WORD)(unsafe.Pointer(&this.storage[2]))
  5917  }
  5918  func (this *WAVEFORMATEX) NSamplesPerSec() *DWORD {
  5919  	return (*DWORD)(unsafe.Pointer(&this.storage[4]))
  5920  }
  5921  func (this *WAVEFORMATEX) NAvgBytesPerSec() *DWORD {
  5922  	return (*DWORD)(unsafe.Pointer(&this.storage[8]))
  5923  }
  5924  func (this *WAVEFORMATEX) NBlockAlign() *WORD {
  5925  	return (*WORD)(unsafe.Pointer(&this.storage[12]))
  5926  }
  5927  func (this *WAVEFORMATEX) WBitsPerSample() *WORD {
  5928  	return (*WORD)(unsafe.Pointer(&this.storage[14]))
  5929  }
  5930  func (this *WAVEFORMATEX) CbSize() *WORD {
  5931  	return (*WORD)(unsafe.Pointer(&this.storage[16]))
  5932  }
  5933  
  5934  type WAVEHDR struct {
  5935  	LpData          LPSTR
  5936  	DwBufferLength  DWORD
  5937  	DwBytesRecorded DWORD
  5938  	DwUser          DWORD_PTR
  5939  	DwFlags         DWORD
  5940  	DwLoops         DWORD
  5941  	LpNext          *WAVEHDR
  5942  	Reserved        DWORD_PTR
  5943  }
  5944  type WAVEINCAPS struct {
  5945  	WMid           WORD
  5946  	WPid           WORD
  5947  	VDriverVersion MMVERSION
  5948  	SzPname        [MAXPNAMELEN]WCHAR
  5949  	DwFormats      DWORD
  5950  	WChannels      WORD
  5951  	WReserved1     WORD
  5952  }
  5953  type WAVEOUTCAPS struct {
  5954  	WMid           WORD
  5955  	WPid           WORD
  5956  	VDriverVersion MMVERSION
  5957  	SzPname        [MAXPNAMELEN]WCHAR
  5958  	DwFormats      DWORD
  5959  	WChannels      WORD
  5960  	WReserved1     WORD
  5961  	DwSupport      DWORD
  5962  }
  5963  type WCHAR uint16
  5964  type WCRANGE struct {
  5965  	WcLow   WCHAR
  5966  	CGlyphs USHORT
  5967  }
  5968  type WGLSWAP struct {
  5969  	Hdc     HDC
  5970  	UiFlags uint32 // UINT
  5971  }
  5972  type WINDOWINFO struct {
  5973  	CbSize          uint32 // DWORD
  5974  	RcWindow        RECT
  5975  	RcClient        RECT
  5976  	DwStyle         uint32 // DWORD
  5977  	DwExStyle       uint32 // DWORD
  5978  	DwWindowStatus  uint32 // DWORD
  5979  	CxWindowBorders uint32 // UINT
  5980  	CyWindowBorders uint32 // UINT
  5981  	AtomWindowType  ATOM
  5982  	WCreatorVersion uint16 // WORD
  5983  }
  5984  type WINDOWPLACEMENT struct {
  5985  	Length           uint32
  5986  	Flags            uint32
  5987  	ShowCmd          uint32
  5988  	PtMinPosition    POINT
  5989  	PtMaxPosition    POINT
  5990  	RcNormalPosition RECT
  5991  }
  5992  type WINEVENTPROC func(hWinEventHook HWINEVENTHOOK, event uint32, hwnd HWND, idObject int32, idChild int32, idEventThread uint32, dwmsEventTime uint32)
  5993  type WINSTAENUMPROC func(lpszWindowStation LPWSTR, lParam LPARAM) BOOL
  5994  type WNDCLASS struct {
  5995  	Style         uint32
  5996  	LpfnWndProc   uintptr // WNDPROC
  5997  	CbClsExtra    int32
  5998  	CbWndExtra    int32
  5999  	HInstance     HINSTANCE
  6000  	HIcon         HICON
  6001  	HCursor       HCURSOR
  6002  	HbrBackground HBRUSH
  6003  	LpszMenuName  *uint16 // LPCWSTR
  6004  	LpszClassName *uint16 // LPCWSTR
  6005  }
  6006  type WNDCLASSEX struct {
  6007  	CbSize        uint32
  6008  	Style         uint32
  6009  	LpfnWndProc   uintptr
  6010  	CbClsExtra    int32
  6011  	CbWndExtra    int32
  6012  	HInstance     HINSTANCE
  6013  	HIcon         HICON
  6014  	HCursor       HCURSOR
  6015  	HbrBackground HBRUSH
  6016  	LpszMenuName  *uint16
  6017  	LpszClassName *uint16
  6018  	HIconSm       HICON
  6019  }
  6020  type WNDENUMPROC func(hWnd HWND, lParam LPARAM) BOOL
  6021  type WNDPROC func(unnamed0 HWND, unnamed1 UINT, unnamed2 WPARAM, unnamed3 LPARAM) LRESULT
  6022  type WORD uint16
  6023  type WPARAM uintptr
  6024  type WSABUF struct {
  6025  	Len ULONG
  6026  	Buf *CHAR
  6027  }
  6028  type WSACOMPLETION struct {
  6029  	Type       WSACOMPLETIONTYPE
  6030  	padding1   [pad4for64_0for32]byte
  6031  	Parameters WSACOMPLETION_Parameters
  6032  }
  6033  type WSACOMPLETION_Parameters struct {
  6034  	storage [4 * pad6for64_3for32]byte
  6035  }
  6036  type WSACOMPLETION_Parameters_WindowMessage struct {
  6037  	HWnd    HWND
  6038  	UMsg    UINT
  6039  	Context WPARAM
  6040  }
  6041  type WSACOMPLETION_Parameters_Event struct {
  6042  	LpOverlapped LPWSAOVERLAPPED
  6043  }
  6044  type WSACOMPLETION_Parameters_Apc struct {
  6045  	LpOverlapped       LPWSAOVERLAPPED
  6046  	LpfnCompletionProc uintptr // LPWSAOVERLAPPED_COMPLETION_ROUTINE
  6047  }
  6048  type WSACOMPLETION_Parameters_Port struct {
  6049  	LpOverlapped LPWSAOVERLAPPED
  6050  	HPort        HANDLE
  6051  	Key          ULONG_PTR
  6052  }
  6053  
  6054  func (this *WSACOMPLETION_Parameters) WindowMessage() *WSACOMPLETION_Parameters_WindowMessage {
  6055  	return (*WSACOMPLETION_Parameters_WindowMessage)(unsafe.Pointer(this))
  6056  }
  6057  func (this *WSACOMPLETION_Parameters) Event() *WSACOMPLETION_Parameters_Event {
  6058  	return (*WSACOMPLETION_Parameters_Event)(unsafe.Pointer(this))
  6059  }
  6060  func (this *WSACOMPLETION_Parameters) Apc() *WSACOMPLETION_Parameters_Apc {
  6061  	return (*WSACOMPLETION_Parameters_Apc)(unsafe.Pointer(this))
  6062  }
  6063  func (this *WSACOMPLETION_Parameters) Port() *WSACOMPLETION_Parameters_Port {
  6064  	return (*WSACOMPLETION_Parameters_Port)(unsafe.Pointer(this))
  6065  }
  6066  
  6067  type WSAEVENT HANDLE
  6068  type WSAMSG struct {
  6069  	Name          LPSOCKADDR
  6070  	Namelen       INT
  6071  	LpBuffers     LPWSABUF
  6072  	DwBufferCount ULONG
  6073  	Control       WSABUF
  6074  	DwFlags       ULONG
  6075  }
  6076  type WSANAMESPACE_INFO struct {
  6077  	NSProviderId   GUID
  6078  	DwNameSpace    DWORD
  6079  	FActive        BOOL
  6080  	DwVersion      DWORD
  6081  	LpszIdentifier LPWSTR
  6082  }
  6083  type WSANETWORKEVENTS struct {
  6084  	LNetworkEvents int32
  6085  	IErrorCode     [FD_MAX_EVENTS]int32
  6086  }
  6087  type WSANSCLASSINFO struct {
  6088  	LpszName    LPWSTR
  6089  	DwNameSpace DWORD
  6090  	DwValueType DWORD
  6091  	DwValueSize DWORD
  6092  	LpValue     LPVOID
  6093  }
  6094  type WSAPOLLFD struct {
  6095  	Fd      SOCKET
  6096  	Events  SHORT
  6097  	Revents SHORT
  6098  }
  6099  type WSAPROTOCOLCHAIN struct {
  6100  	ChainLen     int32
  6101  	ChainEntries [MAX_PROTOCOL_CHAIN]DWORD
  6102  }
  6103  type WSAPROTOCOL_INFO struct {
  6104  	DwServiceFlags1    DWORD
  6105  	DwServiceFlags2    DWORD
  6106  	DwServiceFlags3    DWORD
  6107  	DwServiceFlags4    DWORD
  6108  	DwProviderFlags    DWORD
  6109  	ProviderId         GUID
  6110  	DwCatalogEntryId   DWORD
  6111  	ProtocolChain      WSAPROTOCOLCHAIN
  6112  	IVersion           int32
  6113  	IAddressFamily     int32
  6114  	IMaxSockAddr       int32
  6115  	IMinSockAddr       int32
  6116  	ISocketType        int32
  6117  	IProtocol          int32
  6118  	IProtocolMaxOffset int32
  6119  	INetworkByteOrder  int32
  6120  	ISecurityScheme    int32
  6121  	DwMessageSize      DWORD
  6122  	DwProviderReserved DWORD
  6123  	SzProtocol         [WSAPROTOCOL_LEN + 1]WCHAR
  6124  }
  6125  type WSAQUERYSET struct {
  6126  	DwSize                  DWORD
  6127  	LpszServiceInstanceName LPWSTR
  6128  	LpServiceClassId        LPGUID
  6129  	LpVersion               LPWSAVERSION
  6130  	LpszComment             LPWSTR
  6131  	DwNameSpace             DWORD
  6132  	LpNSProviderId          LPGUID
  6133  	LpszContext             LPWSTR
  6134  	DwNumberOfProtocols     DWORD
  6135  	LpafpProtocols          LPAFPROTOCOLS
  6136  	LpszQueryString         LPWSTR
  6137  	DwNumberOfCsAddrs       DWORD
  6138  	LpcsaBuffer             LPCSADDR_INFO
  6139  	DwOutputFlags           DWORD
  6140  	LpBlob                  LPBLOB
  6141  }
  6142  type WSASERVICECLASSINFO struct {
  6143  	LpServiceClassId     LPGUID
  6144  	LpszServiceClassName LPWSTR
  6145  	DwCount              DWORD
  6146  	LpClassInfos         LPWSANSCLASSINFO
  6147  }
  6148  type WSAVERSION struct {
  6149  	DwVersion DWORD
  6150  	EcHow     WSAECOMPARATOR
  6151  }
  6152  type XFORM struct {
  6153  	EM11 FLOAT
  6154  	EM12 FLOAT
  6155  	EM21 FLOAT
  6156  	EM22 FLOAT
  6157  	EDx  FLOAT
  6158  	EDy  FLOAT
  6159  }
  6160  type XFORML struct {
  6161  	EM11 FLOATL
  6162  	EM12 FLOATL
  6163  	EM21 FLOATL
  6164  	EM22 FLOATL
  6165  	EDx  FLOATL
  6166  	EDy  FLOATL
  6167  }
  6168  type XFORMOBJ struct {
  6169  	UlReserved ULONG
  6170  }
  6171  type XLATEOBJ struct {
  6172  	IUniq    ULONG
  6173  	FlXlate  FLONG
  6174  	ISrcType USHORT
  6175  	IDstType USHORT
  6176  	CEntries ULONG
  6177  	PulXlate *ULONG
  6178  }
  6179  type XMIT_HELPER_ROUTINE func(unnamed PMIDL_STUB_MESSAGE)
  6180  type XMIT_ROUTINE_QUINTUPLE struct {
  6181  	PfnTranslateToXmit   uintptr // XMIT_HELPER_ROUTINE
  6182  	PfnTranslateFromXmit uintptr // XMIT_HELPER_ROUTINE
  6183  	PfnFreeXmit          uintptr // XMIT_HELPER_ROUTINE
  6184  	PfnFreeInst          uintptr // XMIT_HELPER_ROUTINE
  6185  }
  6186  type YIELDPROC func(mciId MCIDEVICEID, dwYieldData DWORD) UINT
  6187  
  6188  func Typeof(name string) reflect.Type {
  6189  	return types[name]
  6190  }
  6191  
  6192  func TypeNames() []string {
  6193  	ret := make([]string, len(types))
  6194  	i := 0
  6195  	for name, _ := range types {
  6196  		ret[i] = name
  6197  		i++
  6198  	}
  6199  	return ret
  6200  }
  6201  
  6202  type MEMORYSTATUSEX struct {
  6203  	CbSize                  DWORD
  6204  	DwMemoryLoad            DWORD
  6205  	UllTotalPhys            uint64 // in bytes
  6206  	UllAvailPhys            uint64
  6207  	UllTotalPageFile        uint64
  6208  	UllAvailPageFile        uint64
  6209  	UllTotalVirtual         uint64
  6210  	UllAvailVirtual         uint64
  6211  	UllAvailExtendedVirtual uint64
  6212  }
  6213  
  6214  type LPPROCESSENTRY32 struct {
  6215  	DwSize              DWORD
  6216  	CntUsage            DWORD
  6217  	Th32ProcessID       DWORD
  6218  	Th32DefaultHeapID   ULONG_PTR
  6219  	Th32ModuleID        DWORD
  6220  	CntThreads          DWORD
  6221  	Th32ParentProcessID DWORD
  6222  	PcPriClassBase      LONG
  6223  	DwFlags             DWORD
  6224  	SzExeFile           [MAX_PATH]CHAR
  6225  }