ReactOS 0.4.17-dev-934-g091855f
main.c File Reference
#include "wine/test.h"
#include <stdio.h>
#include "initguid.h"
#include "oledlg.h"
Include dependency graph for main.c:

Go to the source code of this file.

Macros

#define COBJMACROS
 

Functions

static HRESULT WINAPI enumverbs_QueryInterface (IEnumOLEVERB *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI enumverbs_AddRef (IEnumOLEVERB *iface)
 
static ULONG WINAPI enumverbs_Release (IEnumOLEVERB *iface)
 
static HRESULT WINAPI enumverbs_Next (IEnumOLEVERB *iface, ULONG count, OLEVERB *verbs, ULONG *fetched)
 
static HRESULT WINAPI enumverbs_Skip (IEnumOLEVERB *iface, ULONG count)
 
static HRESULT WINAPI enumverbs_Reset (IEnumOLEVERB *iface)
 
static HRESULT WINAPI enumverbs_Clone (IEnumOLEVERB *iface, IEnumOLEVERB **ppenum)
 
static HRESULT WINAPI oleobject_QueryInterface (IOleObject *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI oleobject_AddRef (IOleObject *iface)
 
static ULONG WINAPI oleobject_Release (IOleObject *iface)
 
static HRESULT WINAPI oleobject_SetClientSite (IOleObject *iface, IOleClientSite *site)
 
static HRESULT WINAPI oleobject_GetClientSite (IOleObject *iface, IOleClientSite **site)
 
static HRESULT WINAPI oleobject_SetHostNames (IOleObject *iface, LPCOLESTR containerapp, LPCOLESTR containerObj)
 
static HRESULT WINAPI oleobject_Close (IOleObject *iface, DWORD saveopt)
 
static HRESULT WINAPI oleobject_SetMoniker (IOleObject *iface, DWORD whichmoniker, IMoniker *mk)
 
static HRESULT WINAPI oleobject_GetMoniker (IOleObject *iface, DWORD assign, DWORD whichmoniker, IMoniker **mk)
 
static HRESULT WINAPI oleobject_InitFromData (IOleObject *iface, IDataObject *dataobject, BOOL creation, DWORD reserved)
 
static HRESULT WINAPI oleobject_GetClipboardData (IOleObject *iface, DWORD reserved, IDataObject **dataobject)
 
static HRESULT WINAPI oleobject_DoVerb (IOleObject *iface, LONG verb, MSG *msg, IOleClientSite *activesite, LONG index, HWND hwndParent, LPCRECT rect)
 
static HRESULT WINAPI oleobject_EnumVerbs (IOleObject *iface, IEnumOLEVERB **enumverb)
 
static HRESULT WINAPI oleobject_Update (IOleObject *iface)
 
static HRESULT WINAPI oleobject_IsUpToDate (IOleObject *iface)
 
static HRESULT WINAPI oleobject_GetUserClassID (IOleObject *iface, CLSID *clsid)
 
static HRESULT WINAPI oleobject_GetUserType (IOleObject *iface, DWORD formoftype, LPOLESTR *usertype)
 
static HRESULT WINAPI oleobject_SetExtent (IOleObject *iface, DWORD aspect, SIZEL *size)
 
static HRESULT WINAPI oleobject_GetExtent (IOleObject *iface, DWORD aspect, SIZEL *size)
 
static HRESULT WINAPI oleobject_Advise (IOleObject *iface, IAdviseSink *sink, DWORD *connection)
 
static HRESULT WINAPI oleobject_Unadvise (IOleObject *iface, DWORD connection)
 
static HRESULT WINAPI oleobject_EnumAdvise (IOleObject *iface, IEnumSTATDATA **enumadvise)
 
static HRESULT WINAPI oleobject_GetMiscStatus (IOleObject *iface, DWORD aspect, DWORD *status)
 
static HRESULT WINAPI oleobject_SetColorScheme (IOleObject *iface, LOGPALETTE *pal)
 
static void test_OleUIAddVerbMenu (void)
 
 START_TEST (main)
 

Variables

static int g_enumpos
 
static IEnumOLEVERBVtbl enumverbsvtbl
 
static IEnumOLEVERB enumverbs = { &enumverbsvtbl }
 
static BOOL g_enumverbsfail
 
static IOleObjectVtbl oleobjectvtbl
 
static IOleObject oleobject = { &oleobjectvtbl }
 

Macro Definition Documentation

◆ COBJMACROS

#define COBJMACROS

Definition at line 21 of file main.c.

Function Documentation

◆ enumverbs_AddRef()

static ULONG WINAPI enumverbs_AddRef ( IEnumOLEVERB *  iface)
static

Definition at line 41 of file main.c.

42{
43 return 2;
44}

◆ enumverbs_Clone()

static HRESULT WINAPI enumverbs_Clone ( IEnumOLEVERB *  iface,
IEnumOLEVERB **  ppenum 
)
static

Definition at line 83 of file main.c.

84{
85 ok(0, "unexpected call\n");
86 return E_NOTIMPL;
87}
#define ok(value,...)
Definition: atltest.h:57
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ enumverbs_Next()

static HRESULT WINAPI enumverbs_Next ( IEnumOLEVERB *  iface,
ULONG  count,
OLEVERB *  verbs,
ULONG *  fetched 
)
static

Definition at line 52 of file main.c.

53{
54 ok(count == 1, "got %lu\n", count);
55 ok(fetched == NULL, "got %p\n", fetched);
56 ok(g_enumpos == 0 || g_enumpos == 1, "got pos %d\n", g_enumpos);
57
58 if (g_enumpos++ == 0) {
59 verbs->lVerb = 123;
60 verbs->lpszVerbName = CoTaskMemAlloc(sizeof(L"verb"));
61 lstrcpyW(verbs->lpszVerbName, L"verb");
62 verbs->fuFlags = MF_ENABLED;
63 verbs->grfAttribs = OLEVERBATTRIB_ONCONTAINERMENU;
64 if (fetched) *fetched = 1;
65 return S_OK;
66 }
67
68 return S_FALSE;
69}
Verb verbs[]
Definition: certutil.cpp:21
#define NULL
Definition: types.h:112
void *WINAPI CoTaskMemAlloc(SIZE_T size)
Definition: malloc.c:381
#define lstrcpyW
Definition: compat.h:749
#define L(x)
Definition: resources.c:13
GLuint GLuint GLsizei count
Definition: gl.h:1545
#define S_OK
Definition: intsafe.h:52
static int g_enumpos
Definition: main.c:51
#define MF_ENABLED
Definition: winuser.h:128
#define S_FALSE
Definition: winerror.h:3451

◆ enumverbs_QueryInterface()

static HRESULT WINAPI enumverbs_QueryInterface ( IEnumOLEVERB *  iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 29 of file main.c.

30{
32 *ppv = iface;
33 IEnumOLEVERB_AddRef(iface);
34 return S_OK;
35 }
36
37 *ppv = NULL;
38 return E_NOINTERFACE;
39}
const GUID IID_IUnknown
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39
const GUID IID_IEnumOLEVERB
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95
#define E_NOINTERFACE
Definition: winerror.h:3479

◆ enumverbs_Release()

static ULONG WINAPI enumverbs_Release ( IEnumOLEVERB *  iface)
static

Definition at line 46 of file main.c.

47{
48 return 1;
49}

◆ enumverbs_Reset()

static HRESULT WINAPI enumverbs_Reset ( IEnumOLEVERB *  iface)
static

Definition at line 77 of file main.c.

78{
79 ok(0, "unexpected call\n");
80 return E_NOTIMPL;
81}

◆ enumverbs_Skip()

static HRESULT WINAPI enumverbs_Skip ( IEnumOLEVERB *  iface,
ULONG  count 
)
static

Definition at line 71 of file main.c.

72{
73 ok(0, "unexpected call\n");
74 return E_NOTIMPL;
75}

◆ oleobject_AddRef()

static ULONG WINAPI oleobject_AddRef ( IOleObject *  iface)
static

Definition at line 113 of file main.c.

114{
115 return 2;
116}

◆ oleobject_Advise()

static HRESULT WINAPI oleobject_Advise ( IOleObject *  iface,
IAdviseSink *  sink,
DWORD *  connection 
)
static

Definition at line 230 of file main.c.

231{
232 ok(0, "unexpected call\n");
233 return E_NOTIMPL;
234}

◆ oleobject_Close()

static HRESULT WINAPI oleobject_Close ( IOleObject *  iface,
DWORD  saveopt 
)
static

Definition at line 142 of file main.c.

143{
144 ok(0, "unexpected call\n");
145 return E_NOTIMPL;
146}

◆ oleobject_DoVerb()

static HRESULT WINAPI oleobject_DoVerb ( IOleObject *  iface,
LONG  verb,
MSG *  msg,
IOleClientSite *  activesite,
LONG  index,
HWND  hwndParent,
LPCRECT  rect 
)
static

Definition at line 174 of file main.c.

176{
177 ok(0, "unexpected call\n");
178 return E_NOTIMPL;
179}

◆ oleobject_EnumAdvise()

static HRESULT WINAPI oleobject_EnumAdvise ( IOleObject *  iface,
IEnumSTATDATA **  enumadvise 
)
static

Definition at line 242 of file main.c.

243{
244 ok(0, "unexpected call\n");
245 return E_NOTIMPL;
246}

◆ oleobject_EnumVerbs()

static HRESULT WINAPI oleobject_EnumVerbs ( IOleObject *  iface,
IEnumOLEVERB **  enumverb 
)
static

Definition at line 182 of file main.c.

183{
184 if (g_enumverbsfail) {
185 *enumverb = NULL;
186 return E_FAIL;
187 }
188 *enumverb = &enumverbs;
189 return S_OK;
190}
#define E_FAIL
Definition: ddrawi.h:102
static BOOL g_enumverbsfail
Definition: main.c:181
static IEnumOLEVERB enumverbs
Definition: main.c:99

◆ oleobject_GetClientSite()

static HRESULT WINAPI oleobject_GetClientSite ( IOleObject *  iface,
IOleClientSite **  site 
)
static

Definition at line 129 of file main.c.

130{
131 ok(0, "unexpected call\n");
132 return E_NOTIMPL;
133}

◆ oleobject_GetClipboardData()

static HRESULT WINAPI oleobject_GetClipboardData ( IOleObject *  iface,
DWORD  reserved,
IDataObject **  dataobject 
)
static

Definition at line 168 of file main.c.

169{
170 ok(0, "unexpected call\n");
171 return E_NOTIMPL;
172}

◆ oleobject_GetExtent()

static HRESULT WINAPI oleobject_GetExtent ( IOleObject *  iface,
DWORD  aspect,
SIZEL *  size 
)
static

Definition at line 224 of file main.c.

225{
226 ok(0, "unexpected call\n");
227 return E_NOTIMPL;
228}

◆ oleobject_GetMiscStatus()

static HRESULT WINAPI oleobject_GetMiscStatus ( IOleObject *  iface,
DWORD  aspect,
DWORD *  status 
)
static

Definition at line 248 of file main.c.

249{
250 ok(0, "unexpected call\n");
251 return E_NOTIMPL;
252}

◆ oleobject_GetMoniker()

static HRESULT WINAPI oleobject_GetMoniker ( IOleObject *  iface,
DWORD  assign,
DWORD  whichmoniker,
IMoniker **  mk 
)
static

Definition at line 154 of file main.c.

156{
157 ok(0, "unexpected call\n");
158 return E_NOTIMPL;
159}

◆ oleobject_GetUserClassID()

static HRESULT WINAPI oleobject_GetUserClassID ( IOleObject *  iface,
CLSID *  clsid 
)
static

Definition at line 204 of file main.c.

205{
206 ok(0, "unexpected call\n");
207 return E_NOTIMPL;
208}

◆ oleobject_GetUserType()

static HRESULT WINAPI oleobject_GetUserType ( IOleObject *  iface,
DWORD  formoftype,
LPOLESTR *  usertype 
)
static

Definition at line 209 of file main.c.

211{
212 ok(formoftype == USERCLASSTYPE_SHORT, "got %ld\n", formoftype);
213 *usertype = CoTaskMemAlloc(sizeof(L"test"));
214 lstrcpyW(*usertype, L"test");
215 return S_OK;
216}

◆ oleobject_InitFromData()

static HRESULT WINAPI oleobject_InitFromData ( IOleObject *  iface,
IDataObject *  dataobject,
BOOL  creation,
DWORD  reserved 
)
static

Definition at line 161 of file main.c.

163{
164 ok(0, "unexpected call\n");
165 return E_NOTIMPL;
166}

◆ oleobject_IsUpToDate()

static HRESULT WINAPI oleobject_IsUpToDate ( IOleObject *  iface)
static

Definition at line 198 of file main.c.

199{
200 ok(0, "unexpected call\n");
201 return E_NOTIMPL;
202}

◆ oleobject_QueryInterface()

static HRESULT WINAPI oleobject_QueryInterface ( IOleObject *  iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 101 of file main.c.

102{
104 *ppv = iface;
105 IOleObject_AddRef(iface);
106 return S_OK;
107 }
108
109 *ppv = NULL;
110 return E_NOINTERFACE;
111}
const GUID IID_IOleObject

◆ oleobject_Release()

static ULONG WINAPI oleobject_Release ( IOleObject *  iface)
static

Definition at line 118 of file main.c.

119{
120 return 1;
121}

◆ oleobject_SetClientSite()

static HRESULT WINAPI oleobject_SetClientSite ( IOleObject *  iface,
IOleClientSite *  site 
)
static

Definition at line 123 of file main.c.

124{
125 ok(0, "unexpected call\n");
126 return E_NOTIMPL;
127}

◆ oleobject_SetColorScheme()

static HRESULT WINAPI oleobject_SetColorScheme ( IOleObject *  iface,
LOGPALETTE *  pal 
)
static

Definition at line 254 of file main.c.

255{
256 ok(0, "unexpected call\n");
257 return E_NOTIMPL;
258}

◆ oleobject_SetExtent()

static HRESULT WINAPI oleobject_SetExtent ( IOleObject *  iface,
DWORD  aspect,
SIZEL *  size 
)
static

Definition at line 218 of file main.c.

219{
220 ok(0, "unexpected call\n");
221 return E_NOTIMPL;
222}

◆ oleobject_SetHostNames()

static HRESULT WINAPI oleobject_SetHostNames ( IOleObject *  iface,
LPCOLESTR  containerapp,
LPCOLESTR  containerObj 
)
static

Definition at line 135 of file main.c.

137{
138 ok(0, "unexpected call\n");
139 return E_NOTIMPL;
140}

◆ oleobject_SetMoniker()

static HRESULT WINAPI oleobject_SetMoniker ( IOleObject *  iface,
DWORD  whichmoniker,
IMoniker *  mk 
)
static

Definition at line 148 of file main.c.

149{
150 ok(0, "unexpected call\n");
151 return E_NOTIMPL;
152}

◆ oleobject_Unadvise()

static HRESULT WINAPI oleobject_Unadvise ( IOleObject *  iface,
DWORD  connection 
)
static

Definition at line 236 of file main.c.

237{
238 ok(0, "unexpected call\n");
239 return E_NOTIMPL;
240}

◆ oleobject_Update()

static HRESULT WINAPI oleobject_Update ( IOleObject *  iface)
static

Definition at line 192 of file main.c.

193{
194 ok(0, "unexpected call\n");
195 return E_NOTIMPL;
196}

◆ START_TEST()

START_TEST ( main  )

Definition at line 474 of file main.c.

475{
477}
static void test_OleUIAddVerbMenu(void)
Definition: main.c:289

◆ test_OleUIAddVerbMenu()

static void test_OleUIAddVerbMenu ( void  )
static

Definition at line 289 of file main.c.

290{
291 HMENU hMenu, verbmenu;
293 WCHAR buffW[50];
294 int count;
295 BOOL ret;
296
297 ret = OleUIAddVerbMenuW(NULL, NULL, NULL, 0, 0, 0, FALSE, 0, NULL);
298 ok(!ret, "got %d\n", ret);
299
300 verbmenu = (HMENU)0xdeadbeef;
301 ret = OleUIAddVerbMenuW(NULL, NULL, NULL, 0, 0, 0, FALSE, 0, &verbmenu);
302 ok(!ret, "got %d\n", ret);
303 ok(verbmenu == NULL, "got %p\n", verbmenu);
304
305 g_enumpos = 0;
306 ret = OleUIAddVerbMenuW(&oleobject, NULL, NULL, 0, 0, 0, FALSE, 0, NULL);
307 ok(!ret, "got %d\n", ret);
308
309 hMenu = CreatePopupMenu();
310
311 memset(&info, 0, sizeof(info));
312 info.cbSize = sizeof(info);
313 ret = InsertMenuItemW(hMenu, 0, TRUE, &info);
314 ok(ret, "got %d\n", ret);
315
316 count = GetMenuItemCount(hMenu);
317 ok(count == 1, "got %d\n", count);
318
319 g_enumpos = 0;
320 ret = OleUIAddVerbMenuW(&oleobject, NULL, hMenu, 0, 0, 0, FALSE, 0, NULL);
321 ok(!ret, "got %d\n", ret);
322
323 count = GetMenuItemCount(hMenu);
324 ok(count == 1, "got %d\n", count);
325
326 ret = InsertMenuItemW(hMenu, 0, TRUE, &info);
327 ok(ret, "got %d\n", ret);
328
329 count = GetMenuItemCount(hMenu);
330 ok(count == 2, "got %d\n", count);
331
332 verbmenu = (HMENU)0xdeadbeef;
333 g_enumpos = 0;
334 ret = OleUIAddVerbMenuW(&oleobject, NULL, hMenu, 1, 0, 0, FALSE, 0, &verbmenu);
335 ok(ret, "got %d\n", ret);
336 ok(verbmenu == NULL, "got %p\n", verbmenu);
337
338 count = GetMenuItemCount(hMenu);
339 ok(count == 2, "got %d\n", count);
340
341 /* object doesn't support EnumVerbs() */
343 g_enumpos = 0;
344 verbmenu = (HMENU)0xdeadbeef;
345 ret = OleUIAddVerbMenuW(&oleobject, NULL, hMenu, 2, 0, 0, FALSE, 0, &verbmenu);
346 ok(!ret, "got %d\n", ret);
347 ok(verbmenu == NULL, "got %p\n", verbmenu);
349
350 /* added disabled item */
351 memset(&info, 0, sizeof(info));
352 info.cbSize = sizeof(info);
354 ret = GetMenuItemInfoW(hMenu, 2, TRUE, &info);
355 ok(ret, "got %d\n", ret);
356 ok(info.fState & MFS_DISABLED, "got state 0x%08x\n", info.fState);
357 ok(info.hSubMenu == NULL, "got submenu %p\n", info.hSubMenu);
358
359 count = GetMenuItemCount(hMenu);
360 ok(count == 3, "got %d\n", count);
361
362 /* now without object */
363 verbmenu = (HMENU)0xdeadbeef;
364 ret = OleUIAddVerbMenuW(NULL, L"test", hMenu, 3, 42, 0, FALSE, 0, &verbmenu);
365 ok(!ret, "got %d\n", ret);
366 ok(verbmenu == NULL, "got %p\n", verbmenu);
367
368 memset(&info, 0, sizeof(info));
369 info.cbSize = sizeof(info);
371 info.dwTypeData = buffW;
372 info.cch = ARRAY_SIZE(buffW);
373 ret = GetMenuItemInfoW(hMenu, 3, TRUE, &info);
374 ok(ret, "got %d\n", ret);
375 ok(info.fState == MF_GRAYED, "got state 0x%08x\n", info.fState);
376 ok(info.wID == 42, "got id %d\n", info.wID);
377 ok(info.hSubMenu == NULL, "got submenu %p\n", info.hSubMenu);
378
379 count = GetMenuItemCount(hMenu);
380 ok(count == 4, "got %d\n", count);
381
382 verbmenu = (HMENU)0xdeadbeef;
383 g_enumpos = 0;
384 ret = OleUIAddVerbMenuW(&oleobject, NULL, hMenu, 4, 0, 0, FALSE, 0, &verbmenu);
385 ok(ret, "got %d\n", ret);
386 ok(verbmenu == NULL, "got %p\n", verbmenu);
387
388 /* check newly added item */
389 memset(&info, 0, sizeof(info));
390 info.cbSize = sizeof(info);
392 info.dwTypeData = buffW;
393 info.cch = ARRAY_SIZE(buffW);
394 ret = GetMenuItemInfoW(hMenu, 4, TRUE, &info);
395 ok(ret, "got %d\n", ret);
396 /* Item string contains verb, usertype and localized string for 'Object' word,
397 exact format depends on localization. */
398 ok(wcsstr(buffW, L"verb") != NULL, "str %s\n", wine_dbgstr_w(buffW));
399 ok(info.fState == 0, "got state 0x%08x\n", info.fState);
400 ok(info.hSubMenu == NULL, "got submenu %p\n", info.hSubMenu);
401
402 count = GetMenuItemCount(hMenu);
403 ok(count == 5, "got %d\n", count);
404
405 DestroyMenu(hMenu);
406
407 /* try to add verb menu repeatedly, with same id */
408 hMenu = CreatePopupMenu();
409
410 count = GetMenuItemCount(hMenu);
411 ok(count == 0, "got %d\n", count);
412
413 verbmenu = NULL;
414 ret = OleUIAddVerbMenuW(NULL, NULL, hMenu, 0, 5, 10, TRUE, 3, &verbmenu);
415 ok(!ret, "got %d\n", ret);
416 ok(verbmenu == NULL, "got %p\n", verbmenu);
417
418 count = GetMenuItemCount(hMenu);
419 ok(count == 1, "got %d\n", count);
420
421 verbmenu = NULL;
422 ret = OleUIAddVerbMenuW(NULL, NULL, hMenu, 0, 5, 10, TRUE, 3, &verbmenu);
423 ok(!ret, "got %d\n", ret);
424 ok(verbmenu == NULL, "got %p\n", verbmenu);
425
426 count = GetMenuItemCount(hMenu);
427 ok(count == 1, "got %d\n", count);
428
429 /* same position, different id */
430 verbmenu = NULL;
431 ret = OleUIAddVerbMenuW(NULL, NULL, hMenu, 0, 6, 10, TRUE, 3, &verbmenu);
432 ok(!ret, "got %d\n", ret);
433 ok(verbmenu == NULL, "got %p\n", verbmenu);
434
435 count = GetMenuItemCount(hMenu);
436 ok(count == 1, "got %d\n", count);
437
438 /* change added item string and state */
439 memset(&info, 0, sizeof(info));
440 info.cbSize = sizeof(info);
442 info.fState = MFS_ENABLED;
443 info.dwTypeData = buffW;
444 lstrcpyW(buffW, L"cadabra");
445 ret = SetMenuItemInfoW(hMenu, 0, TRUE, &info);
446 ok(ret, "got %d\n", ret);
447
448 buffW[0] = 0;
449 GetMenuStringW(hMenu, 0, buffW, ARRAY_SIZE(buffW), MF_BYPOSITION);
450 ok(!lstrcmpW(buffW, L"cadabra"), "got %s\n", wine_dbgstr_w(buffW));
451
452 verbmenu = NULL;
453 ret = OleUIAddVerbMenuW(NULL, NULL, hMenu, 0, 5, 10, TRUE, 3, &verbmenu);
454 ok(!ret, "got %d\n", ret);
455 ok(verbmenu == NULL, "got %p\n", verbmenu);
456
457 memset(&info, 0, sizeof(info));
458 info.cbSize = sizeof(info);
460 buffW[0] = 0;
461 info.dwTypeData = buffW;
462 info.cch = ARRAY_SIZE(buffW);
463 ret = GetMenuItemInfoW(hMenu, 0, TRUE, &info);
464 ok(ret, "got %d\n", ret);
465 ok(lstrcmpW(buffW, L"cadabra"), "got %s\n", wine_dbgstr_w(buffW));
466 ok(info.fState == MF_GRAYED, "got state 0x%08x\n", info.fState);
467
468 count = GetMenuItemCount(hMenu);
469 ok(count == 1, "got %d\n", count);
470
471 DestroyMenu(hMenu);
472}
#define ARRAY_SIZE(A)
Definition: main.h:20
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
Definition: locale.c:4152
_ACRTIMP wchar_t *__cdecl wcsstr(const wchar_t *, const wchar_t *)
Definition: wcs.c:2998
return ret
Definition: mutex.c:147
unsigned int BOOL
Definition: ntddk_ex.h:94
#define wine_dbgstr_w
Definition: kernel32.h:34
static IOleObject oleobject
Definition: main.c:287
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:60
BOOL WINAPI OleUIAddVerbMenuW(IOleObject *object, LPCWSTR shorttype, HMENU hMenu, UINT uPos, UINT idmin, UINT idmax, BOOL addConvert, UINT idConvert, HMENU *ret_submenu)
Definition: oledlg_main.c:157
short WCHAR
Definition: pedump.c:58
HMENU WINAPI CreatePopupMenu(void)
Definition: menu.c:838
#define MIIM_STRING
Definition: winuser.h:738
#define MIIM_ID
Definition: winuser.h:733
int WINAPI GetMenuItemCount(_In_opt_ HMENU)
int WINAPI GetMenuStringW(_In_ HMENU hMenu, _In_ UINT uIDItem, _Out_writes_opt_(cchMax) LPWSTR lpString, _In_ int cchMax, _In_ UINT flags)
BOOL WINAPI SetMenuItemInfoW(_In_ HMENU, _In_ UINT, _In_ BOOL, _In_ LPCMENUITEMINFOW)
#define MFS_DISABLED
Definition: winuser.h:760
#define MIIM_STATE
Definition: winuser.h:732
#define MIIM_SUBMENU
Definition: winuser.h:734
#define MF_BYPOSITION
Definition: winuser.h:203
#define MFS_ENABLED
Definition: winuser.h:761
BOOL WINAPI DestroyMenu(_In_ HMENU)
BOOL WINAPI GetMenuItemInfoW(_In_ HMENU, _In_ UINT, _In_ BOOL, _Inout_ LPMENUITEMINFOW)
BOOL WINAPI InsertMenuItemW(_In_ HMENU, _In_ UINT, _In_ BOOL, _In_ LPCMENUITEMINFOW)
#define MF_GRAYED
Definition: winuser.h:129
#define memset(x, y, z)
Definition: compat.h:39

Referenced by START_TEST().

Variable Documentation

◆ enumverbs

IEnumOLEVERB enumverbs = { &enumverbsvtbl }
static

Definition at line 99 of file main.c.

Referenced by get_next_insertable_verb(), oleobject_EnumVerbs(), and OleUIAddVerbMenuW().

◆ enumverbsvtbl

IEnumOLEVERBVtbl enumverbsvtbl
static
Initial value:
= {
}
static ULONG WINAPI enumverbs_AddRef(IEnumOLEVERB *iface)
Definition: main.c:41
static ULONG WINAPI enumverbs_Release(IEnumOLEVERB *iface)
Definition: main.c:46
static HRESULT WINAPI enumverbs_Reset(IEnumOLEVERB *iface)
Definition: main.c:77
static HRESULT WINAPI enumverbs_Next(IEnumOLEVERB *iface, ULONG count, OLEVERB *verbs, ULONG *fetched)
Definition: main.c:52
static HRESULT WINAPI enumverbs_QueryInterface(IEnumOLEVERB *iface, REFIID riid, void **ppv)
Definition: main.c:29
static HRESULT WINAPI enumverbs_Skip(IEnumOLEVERB *iface, ULONG count)
Definition: main.c:71
static HRESULT WINAPI enumverbs_Clone(IEnumOLEVERB *iface, IEnumOLEVERB **ppenum)
Definition: main.c:83

Definition at line 89 of file main.c.

◆ g_enumpos

int g_enumpos
static

Definition at line 51 of file main.c.

Referenced by enumverbs_Next(), and test_OleUIAddVerbMenu().

◆ g_enumverbsfail

BOOL g_enumverbsfail
static

Definition at line 181 of file main.c.

Referenced by oleobject_EnumVerbs(), and test_OleUIAddVerbMenu().

◆ oleobject

IOleObject oleobject = { &oleobjectvtbl }
static

Definition at line 287 of file main.c.

Referenced by test_OleUIAddVerbMenu().

◆ oleobjectvtbl

IOleObjectVtbl oleobjectvtbl
static
Initial value:
= {
}
static HRESULT WINAPI oleobject_SetMoniker(IOleObject *iface, DWORD whichmoniker, IMoniker *mk)
Definition: main.c:148
static HRESULT WINAPI oleobject_GetUserClassID(IOleObject *iface, CLSID *clsid)
Definition: main.c:204
static HRESULT WINAPI oleobject_DoVerb(IOleObject *iface, LONG verb, MSG *msg, IOleClientSite *activesite, LONG index, HWND hwndParent, LPCRECT rect)
Definition: main.c:174
static HRESULT WINAPI oleobject_GetExtent(IOleObject *iface, DWORD aspect, SIZEL *size)
Definition: main.c:224
static HRESULT WINAPI oleobject_Close(IOleObject *iface, DWORD saveopt)
Definition: main.c:142
static HRESULT WINAPI oleobject_Advise(IOleObject *iface, IAdviseSink *sink, DWORD *connection)
Definition: main.c:230
static HRESULT WINAPI oleobject_GetUserType(IOleObject *iface, DWORD formoftype, LPOLESTR *usertype)
Definition: main.c:209
static HRESULT WINAPI oleobject_Unadvise(IOleObject *iface, DWORD connection)
Definition: main.c:236
static ULONG WINAPI oleobject_AddRef(IOleObject *iface)
Definition: main.c:113
static ULONG WINAPI oleobject_Release(IOleObject *iface)
Definition: main.c:118
static HRESULT WINAPI oleobject_SetHostNames(IOleObject *iface, LPCOLESTR containerapp, LPCOLESTR containerObj)
Definition: main.c:135
static HRESULT WINAPI oleobject_SetClientSite(IOleObject *iface, IOleClientSite *site)
Definition: main.c:123
static HRESULT WINAPI oleobject_GetClientSite(IOleObject *iface, IOleClientSite **site)
Definition: main.c:129
static HRESULT WINAPI oleobject_GetMoniker(IOleObject *iface, DWORD assign, DWORD whichmoniker, IMoniker **mk)
Definition: main.c:154
static HRESULT WINAPI oleobject_QueryInterface(IOleObject *iface, REFIID riid, void **ppv)
Definition: main.c:101
static HRESULT WINAPI oleobject_EnumAdvise(IOleObject *iface, IEnumSTATDATA **enumadvise)
Definition: main.c:242
static HRESULT WINAPI oleobject_EnumVerbs(IOleObject *iface, IEnumOLEVERB **enumverb)
Definition: main.c:182
static HRESULT WINAPI oleobject_GetMiscStatus(IOleObject *iface, DWORD aspect, DWORD *status)
Definition: main.c:248
static HRESULT WINAPI oleobject_GetClipboardData(IOleObject *iface, DWORD reserved, IDataObject **dataobject)
Definition: main.c:168
static HRESULT WINAPI oleobject_SetColorScheme(IOleObject *iface, LOGPALETTE *pal)
Definition: main.c:254
static HRESULT WINAPI oleobject_Update(IOleObject *iface)
Definition: main.c:192
static HRESULT WINAPI oleobject_SetExtent(IOleObject *iface, DWORD aspect, SIZEL *size)
Definition: main.c:218
static HRESULT WINAPI oleobject_InitFromData(IOleObject *iface, IDataObject *dataobject, BOOL creation, DWORD reserved)
Definition: main.c:161
static HRESULT WINAPI oleobject_IsUpToDate(IOleObject *iface)
Definition: main.c:198

Definition at line 260 of file main.c.