1 // Licensed under the Apache License, Version 2.0
2 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4 // All files in the project carrying such notice may not be copied, modified, or distributed
5 // except according to those terms.
6 use ctypes::wchar_t;
7 use shared::guiddef::GUID;
8 use shared::minwindef::{DWORD, ULONG};
9 use um::oaidl::VARIANT;
10 use um::unknwnbase::{IUnknown, IUnknownVtbl};
11 use um::winnt::HRESULT;
12 ENUM!{enum OLECMDF {
13     OLECMDF_SUPPORTED = 0x1,
14     OLECMDF_ENABLED = 0x2,
15     OLECMDF_LATCHED = 0x4,
16     OLECMDF_NINCHED = 0x8,
17     OLECMDF_INVISIBLE = 0x10,
18     OLECMDF_DEFHIDEONCTXTMENU = 0x20,
19 }}
20 STRUCT!{struct OLECMD {
21     cmdID: ULONG,
22     cmdf: DWORD,
23 }}
24 STRUCT!{struct OLECMDTEXT {
25     cmdtextf: DWORD,
26     cwActual: ULONG,
27     cwBuf: ULONG,
28     rgwz: [wchar_t; 1],
29 }}
30 ENUM!{enum OLECMDEXECOPT {
31     OLECMDEXECOPT_DODEFAULT = 0,
32     OLECMDEXECOPT_PROMPTUSER = 1,
33     OLECMDEXECOPT_DONTPROMPTUSER = 2,
34     OLECMDEXECOPT_SHOWHELP = 3,
35 }}
36 ENUM!{enum OLECMDID {
37     OLECMDID_OPEN = 1,
38     OLECMDID_NEW = 2,
39     OLECMDID_SAVE = 3,
40     OLECMDID_SAVEAS = 4,
41     OLECMDID_SAVECOPYAS = 5,
42     OLECMDID_PRINT = 6,
43     OLECMDID_PRINTPREVIEW = 7,
44     OLECMDID_PAGESETUP = 8,
45     OLECMDID_SPELL = 9,
46     OLECMDID_PROPERTIES = 10,
47     OLECMDID_CUT = 11,
48     OLECMDID_COPY = 12,
49     OLECMDID_PASTE = 13,
50     OLECMDID_PASTESPECIAL = 14,
51     OLECMDID_UNDO = 15,
52     OLECMDID_REDO = 16,
53     OLECMDID_SELECTALL = 17,
54     OLECMDID_CLEARSELECTION = 18,
55     OLECMDID_ZOOM = 19,
56     OLECMDID_GETZOOMRANGE = 20,
57     OLECMDID_UPDATECOMMANDS = 21,
58     OLECMDID_REFRESH = 22,
59     OLECMDID_STOP = 23,
60     OLECMDID_HIDETOOLBARS = 24,
61     OLECMDID_SETPROGRESSMAX = 25,
62     OLECMDID_SETPROGRESSPOS = 26,
63     OLECMDID_SETPROGRESSTEXT = 27,
64     OLECMDID_SETTITLE = 28,
65     OLECMDID_SETDOWNLOADSTATE = 29,
66     OLECMDID_STOPDOWNLOAD = 30,
67     OLECMDID_ONTOOLBARACTIVATED = 31,
68     OLECMDID_FIND = 32,
69     OLECMDID_DELETE = 33,
70     OLECMDID_HTTPEQUIV = 34,
71     OLECMDID_HTTPEQUIV_DONE = 35,
72     OLECMDID_ENABLE_INTERACTION = 36,
73     OLECMDID_ONUNLOAD = 37,
74     OLECMDID_PROPERTYBAG2 = 38,
75     OLECMDID_PREREFRESH = 39,
76     OLECMDID_SHOWSCRIPTERROR = 40,
77     OLECMDID_SHOWMESSAGE = 41,
78     OLECMDID_SHOWFIND = 42,
79     OLECMDID_SHOWPAGESETUP = 43,
80     OLECMDID_SHOWPRINT = 44,
81     OLECMDID_CLOSE = 45,
82     OLECMDID_ALLOWUILESSSAVEAS = 46,
83     OLECMDID_DONTDOWNLOADCSS = 47,
84     OLECMDID_UPDATEPAGESTATUS = 48,
85     OLECMDID_PRINT2 = 49,
86     OLECMDID_PRINTPREVIEW2 = 50,
87     OLECMDID_SETPRINTTEMPLATE = 51,
88     OLECMDID_GETPRINTTEMPLATE = 52,
89     OLECMDID_PAGEACTIONBLOCKED = 55,
90     OLECMDID_PAGEACTIONUIQUERY = 56,
91     OLECMDID_FOCUSVIEWCONTROLS = 57,
92     OLECMDID_FOCUSVIEWCONTROLSQUERY = 58,
93     OLECMDID_SHOWPAGEACTIONMENU = 59,
94     OLECMDID_ADDTRAVELENTRY = 60,
95     OLECMDID_UPDATETRAVELENTRY = 61,
96     OLECMDID_UPDATEBACKFORWARDSTATE = 62,
97     OLECMDID_OPTICAL_ZOOM = 63,
98     OLECMDID_OPTICAL_GETZOOMRANGE = 64,
99     OLECMDID_WINDOWSTATECHANGED = 65,
100     OLECMDID_ACTIVEXINSTALLSCOPE = 66,
101     OLECMDID_UPDATETRAVELENTRY_DATARECOVERY = 67,
102     OLECMDID_SHOWTASKDLG = 68,
103     OLECMDID_POPSTATEEVENT = 69,
104     OLECMDID_VIEWPORT_MODE = 70,
105     OLECMDID_LAYOUT_VIEWPORT_WIDTH = 71,
106     OLECMDID_VISUAL_VIEWPORT_EXCLUDE_BOTTOM = 72,
107     OLECMDID_USER_OPTICAL_ZOOM = 73,
108     OLECMDID_PAGEAVAILABLE = 74,
109     OLECMDID_GETUSERSCALABLE = 75,
110     OLECMDID_UPDATE_CARET = 76,
111     OLECMDID_ENABLE_VISIBILITY = 77,
112     OLECMDID_MEDIA_PLAYBACK = 78,
113     OLECMDID_SETFAVICON = 79,
114     OLECMDID_SET_HOST_FULLSCREENMODE = 80,
115     OLECMDID_EXITFULLSCREEN = 81,
116     OLECMDID_SCROLLCOMPLETE = 82,
117     OLECMDID_ONBEFOREUNLOAD = 83,
118     OLECMDID_SHOWMESSAGE_BLOCKABLE = 84,
119     OLECMDID_SHOWTASKDLG_BLOCKABLE = 85,
120 }}
121 RIDL!{#[uuid(0xb722bccb, 0x4e68, 0x101b, 0xa2, 0xbc, 0x00, 0xaa, 0x00, 0x40, 0x47, 0x70)]
122 interface IOleCommandTarget(IOleCommandTargetVtbl): IUnknown(IUnknownVtbl) {
123     fn QueryStatus(
124         pguidCmdGroup: *const GUID,
125         cCmds: ULONG,
126         prgCmds: *mut OLECMD,
127         pCmdText: *mut OLECMDTEXT,
128     ) -> HRESULT,
129     fn Exec(
130         pguidCmdGroup: *const GUID,
131         nCmdID: DWORD,
132         nCmdexecopt: DWORD,
133         pvaIn: *mut VARIANT,
134         pvaOut: *mut VARIANT,
135     ) -> HRESULT,
136 }}
137