Skip to content

Commit 2a20daf

Browse files
committed
Merge branch 'rozmansi-master'
2 parents 85a11ff + 441d983 commit 2a20daf

File tree

9 files changed

+2180
-28
lines changed

9 files changed

+2180
-28
lines changed

gdi32.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -765,6 +765,10 @@ const (
765765
FR_NOT_ENUM = 0x20
766766
)
767767

768+
func RGB(r, g, b byte) COLORREF {
769+
return COLORREF(r) | (COLORREF(g) << 8) | (COLORREF(b) << 16)
770+
}
771+
768772
type (
769773
COLORREF uint32
770774
HBITMAP HGDIOBJ
@@ -776,6 +780,7 @@ type (
776780
HPALETTE HGDIOBJ
777781
HPEN HGDIOBJ
778782
HRGN HGDIOBJ
783+
CLIPFORMAT uint16
779784
)
780785

781786
type PIXELFORMATDESCRIPTOR struct {

menu.go

Lines changed: 52 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -21,27 +21,27 @@ const (
2121

2222
// Constants for MENUITEMINFO.fType
2323
const (
24-
MFT_BITMAP = 4
25-
MFT_MENUBARBREAK = 32
26-
MFT_MENUBREAK = 64
27-
MFT_OWNERDRAW = 256
28-
MFT_RADIOCHECK = 512
29-
MFT_RIGHTJUSTIFY = 0x4000
30-
MFT_SEPARATOR = 0x800
31-
MFT_RIGHTORDER = 0x2000
32-
MFT_STRING = 0
24+
MFT_STRING = MF_STRING
25+
MFT_BITMAP = MF_BITMAP
26+
MFT_MENUBARBREAK = MF_MENUBARBREAK
27+
MFT_MENUBREAK = MF_MENUBREAK
28+
MFT_OWNERDRAW = MF_OWNERDRAW
29+
MFT_RADIOCHECK = 0x00000200
30+
MFT_SEPARATOR = MF_SEPARATOR
31+
MFT_RIGHTORDER = 0x00002000
32+
MFT_RIGHTJUSTIFY = MF_RIGHTJUSTIFY
3333
)
3434

3535
// Constants for MENUITEMINFO.fState
3636
const (
37-
MFS_CHECKED = 8
38-
MFS_DEFAULT = 4096
39-
MFS_DISABLED = 3
40-
MFS_ENABLED = 0
41-
MFS_GRAYED = 3
42-
MFS_HILITE = 128
43-
MFS_UNCHECKED = 0
44-
MFS_UNHILITE = 0
37+
MFS_GRAYED = 0x00000003
38+
MFS_DISABLED = MFS_GRAYED
39+
MFS_CHECKED = MF_CHECKED
40+
MFS_HILITE = MF_HILITE
41+
MFS_ENABLED = MF_ENABLED
42+
MFS_UNCHECKED = MF_UNCHECKED
43+
MFS_UNHILITE = MF_UNHILITE
44+
MFS_DEFAULT = MF_DEFAULT
4545
)
4646

4747
// Constants for MENUITEMINFO.hbmp*
@@ -80,8 +80,43 @@ const (
8080
)
8181

8282
const (
83+
// Menu flags for Add/Check/EnableMenuItem()
84+
MF_INSERT = 0x00000000
85+
MF_CHANGE = 0x00000080
86+
MF_APPEND = 0x00000100
87+
MF_DELETE = 0x00000200
88+
MF_REMOVE = 0x00001000
89+
8390
MF_BYCOMMAND = 0x00000000
8491
MF_BYPOSITION = 0x00000400
92+
93+
MF_SEPARATOR = 0x00000800
94+
95+
MF_ENABLED = 0x00000000
96+
MF_GRAYED = 0x00000001
97+
MF_DISABLED = 0x00000002
98+
99+
MF_UNCHECKED = 0x00000000
100+
MF_CHECKED = 0x00000008
101+
MF_USECHECKBITMAPS = 0x00000200
102+
103+
MF_STRING = 0x00000000
104+
MF_BITMAP = 0x00000004
105+
MF_OWNERDRAW = 0x00000100
106+
107+
MF_POPUP = 0x00000010
108+
MF_MENUBARBREAK = 0x00000020
109+
MF_MENUBREAK = 0x00000040
110+
111+
MF_UNHILITE = 0x00000000
112+
MF_HILITE = 0x00000080
113+
114+
MF_DEFAULT = 0x00001000
115+
MF_SYSMENU = 0x00002000
116+
MF_HELP = 0x00004000
117+
MF_RIGHTJUSTIFY = 0x00004000
118+
119+
MF_MOUSESELECT = 0x00008000
85120
)
86121

87122
type MENUITEMINFO struct {

oaidl.go

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
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+
7+
package win
8+
9+
import (
10+
"syscall"
11+
"unsafe"
12+
)
13+
14+
type SCODE int32
15+
16+
type EXCEPINFO struct {
17+
wCode uint16
18+
wReserved uint16
19+
bstrSource *uint16 /*BSTR*/
20+
bstrDescription *uint16 /*BSTR*/
21+
bstrHelpFile *uint16 /*BSTR*/
22+
dwHelpContext uint32
23+
pvReserved uintptr
24+
pfnDeferredFillIn uintptr
25+
scode SCODE
26+
}
27+
28+
var (
29+
IID_ITypeInfo = IID{0x00020401, 0x0000, 0x0000, [8]byte{0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}}
30+
)
31+
32+
type ITypeInfoVtbl struct {
33+
IUnknownVtbl
34+
GetTypeAttr uintptr
35+
GetTypeComp uintptr
36+
GetFuncDesc uintptr
37+
GetVarDesc uintptr
38+
GetNames uintptr
39+
GetRefTypeOfImplType uintptr
40+
GetImplTypeFlags uintptr
41+
GetIDsOfNames uintptr
42+
Invoke uintptr
43+
GetDocumentation uintptr
44+
GetDllEntry uintptr
45+
GetRefTypeInfo uintptr
46+
AddressOfMember uintptr
47+
CreateInstance uintptr
48+
GetMops uintptr
49+
GetContainingTypeLib uintptr
50+
ReleaseTypeAttr uintptr
51+
ReleaseFuncDesc uintptr
52+
ReleaseVarDesc uintptr
53+
}
54+
55+
type ITypeInfo struct {
56+
LpVtbl *ITypeInfoVtbl
57+
}
58+
59+
func (obj *ITypeInfo) QueryInterface(riid REFIID, ppvObject *unsafe.Pointer) HRESULT {
60+
ret, _, _ := syscall.Syscall(obj.LpVtbl.QueryInterface, 3,
61+
uintptr(unsafe.Pointer(obj)),
62+
uintptr(unsafe.Pointer(riid)),
63+
uintptr(unsafe.Pointer(ppvObject)))
64+
return HRESULT(ret)
65+
}
66+
67+
func (obj *ITypeInfo) AddRef() uint32 {
68+
ret, _, _ := syscall.Syscall(obj.LpVtbl.AddRef, 1,
69+
uintptr(unsafe.Pointer(obj)),
70+
0,
71+
0)
72+
return uint32(ret)
73+
}
74+
75+
func (obj *ITypeInfo) Release() uint32 {
76+
ret, _, _ := syscall.Syscall(obj.LpVtbl.Release, 1,
77+
uintptr(unsafe.Pointer(obj)),
78+
0,
79+
0)
80+
return uint32(ret)
81+
}

objidl.go

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
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+
7+
package win
8+
9+
type IDataObjectVtbl struct {
10+
IUnknownVtbl
11+
GetData uintptr
12+
GetDataHere uintptr
13+
QueryGetData uintptr
14+
GetCanonicalFormatEtc uintptr
15+
SetData uintptr
16+
EnumFormatEtc uintptr
17+
DAdvise uintptr
18+
DUnadvise uintptr
19+
EnumDAdvise uintptr
20+
}
21+
22+
type IDataObject struct {
23+
LpVtbl *IDataObjectVtbl
24+
}
25+
26+
type IStorageVtbl struct {
27+
IUnknownVtbl
28+
CreateStream uintptr
29+
OpenStream uintptr
30+
CreateStorage uintptr
31+
OpenStorage uintptr
32+
CopyTo uintptr
33+
MoveElementTo uintptr
34+
Commit uintptr
35+
Revert uintptr
36+
EnumElements uintptr
37+
DestroyElement uintptr
38+
RenameElement uintptr
39+
SetElementTimes uintptr
40+
SetClass uintptr
41+
SetStateBits uintptr
42+
Stat uintptr
43+
}
44+
45+
type IStorage struct {
46+
LpVtbl *IStorageVtbl
47+
}

0 commit comments

Comments
 (0)