go-tg-screenshot-bot
81 строка · 1.9 Кб
1// Copyright 2010 The win Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// +build windows
6
7package win8
9import (10"syscall"11"unsafe"12)
13
14type SCODE int3215
16type EXCEPINFO struct {17wCode uint1618wReserved uint1619bstrSource *uint16 /*BSTR*/20bstrDescription *uint16 /*BSTR*/21bstrHelpFile *uint16 /*BSTR*/22dwHelpContext uint3223pvReserved uintptr24pfnDeferredFillIn uintptr25scode SCODE
26}
27
28var (29IID_ITypeInfo = IID{0x00020401, 0x0000, 0x0000, [8]byte{0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}}30)
31
32type ITypeInfoVtbl struct {33IUnknownVtbl
34GetTypeAttr uintptr35GetTypeComp uintptr36GetFuncDesc uintptr37GetVarDesc uintptr38GetNames uintptr39GetRefTypeOfImplType uintptr40GetImplTypeFlags uintptr41GetIDsOfNames uintptr42Invoke uintptr43GetDocumentation uintptr44GetDllEntry uintptr45GetRefTypeInfo uintptr46AddressOfMember uintptr47CreateInstance uintptr48GetMops uintptr49GetContainingTypeLib uintptr50ReleaseTypeAttr uintptr51ReleaseFuncDesc uintptr52ReleaseVarDesc uintptr53}
54
55type ITypeInfo struct {56LpVtbl *ITypeInfoVtbl57}
58
59func (obj *ITypeInfo) QueryInterface(riid REFIID, ppvObject *unsafe.Pointer) HRESULT {60ret, _, _ := syscall.Syscall(obj.LpVtbl.QueryInterface, 3,61uintptr(unsafe.Pointer(obj)),62uintptr(unsafe.Pointer(riid)),63uintptr(unsafe.Pointer(ppvObject)))64return HRESULT(ret)65}
66
67func (obj *ITypeInfo) AddRef() uint32 {68ret, _, _ := syscall.Syscall(obj.LpVtbl.AddRef, 1,69uintptr(unsafe.Pointer(obj)),700,710)72return uint32(ret)73}
74
75func (obj *ITypeInfo) Release() uint32 {76ret, _, _ := syscall.Syscall(obj.LpVtbl.Release, 1,77uintptr(unsafe.Pointer(obj)),780,790)80return uint32(ret)81}
82