oledlg: Debugging code to dump the OLEUIPASTESPECIAL structure.

This commit is contained in:
Huw Davies 2006-10-18 16:59:35 +01:00 committed by Alexandre Julliard
parent bed39b45ee
commit f08c5c2ccf
1 changed files with 71 additions and 4 deletions

View File

@ -31,6 +31,70 @@
WINE_DEFAULT_DEBUG_CHANNEL(ole);
static const struct ps_flag
{
DWORD flag;
const char *name;
} ps_flags[] = {
#define PS_FLAG_ENTRY(p) {p, #p}
PS_FLAG_ENTRY(PSF_SHOWHELP),
PS_FLAG_ENTRY(PSF_SELECTPASTE),
PS_FLAG_ENTRY(PSF_SELECTPASTELINK),
PS_FLAG_ENTRY(PSF_CHECKDISPLAYASICON),
PS_FLAG_ENTRY(PSF_DISABLEDISPLAYASICON),
PS_FLAG_ENTRY(PSF_HIDECHANGEICON),
PS_FLAG_ENTRY(PSF_STAYONCLIPBOARDCHANGE),
PS_FLAG_ENTRY(PSF_NOREFRESHDATAOBJECT),
{-1, NULL}
#undef PS_FLAG_ENTRY
};
static void dump_ps_flags(DWORD flags)
{
char flagstr[1000] = "";
const struct ps_flag *flag = ps_flags;
for( ; flag->name; flag++) {
if(flags & flag->flag) {
strcat(flagstr, flag->name);
strcat(flagstr, "|");
}
}
TRACE("flags %08x %s\n", flags, flagstr);
}
static void dump_pastespecial(LPOLEUIPASTESPECIALW ps)
{
UINT i;
dump_ps_flags(ps->dwFlags);
TRACE("hwnd %p caption %s hook %p custdata %lx\n",
ps->hWndOwner, debugstr_w(ps->lpszCaption), ps->lpfnHook, ps->lCustData);
if(IS_INTRESOURCE(ps->lpszTemplate))
TRACE("hinst %p template %04x hresource %p\n", ps->hInstance, (WORD)(ULONG_PTR)ps->lpszTemplate, ps->hResource);
else
TRACE("hinst %p template %s hresource %p\n", ps->hInstance, debugstr_w(ps->lpszTemplate), ps->hResource);
TRACE("dataobj %p arrpasteent %p cpasteent %d arrlinktype %p clinktype %d\n",
ps->lpSrcDataObj, ps->arrPasteEntries, ps->cPasteEntries,
ps->arrLinkTypes, ps->cLinkTypes);
TRACE("cclsidex %d lpclsidex %p nselect %d flink %d hmetapict %p size(%d,%d)\n",
ps->cClsidExclude, ps->lpClsidExclude, ps->nSelectedIndex, ps->fLink,
ps->hMetaPict, ps->sizel.cx, ps->sizel.cy);
for(i = 0; i < ps->cPasteEntries; i++)
{
TRACE("arrPasteEntries[%d]: cFormat %08x pTargetDevice %p dwAspect %d lindex %d tymed %d\n",
i, ps->arrPasteEntries[i].fmtetc.cfFormat, ps->arrPasteEntries[i].fmtetc.ptd,
ps->arrPasteEntries[i].fmtetc.dwAspect, ps->arrPasteEntries[i].fmtetc.lindex,
ps->arrPasteEntries[i].fmtetc.tymed);
TRACE("\tformat name %s result text %s flags %04x\n", debugstr_w(ps->arrPasteEntries[i].lpstrFormatName),
debugstr_w(ps->arrPasteEntries[i].lpstrResultText), ps->arrPasteEntries[i].dwFlags);
}
for(i = 0; i < ps->cLinkTypes; i++)
TRACE("arrLinkTypes[%d] %08x\n", i, ps->arrLinkTypes[i]);
for(i = 0; i < ps->cClsidExclude; i++)
TRACE("lpClsidExclude[%d] %s\n", i, debugstr_guid(&ps->lpClsidExclude[i]));
}
/***********************************************************************
* OleUIPasteSpecialA (OLEDLG.4)
*/
@ -44,9 +108,12 @@ UINT WINAPI OleUIPasteSpecialA(LPOLEUIPASTESPECIALA lpOleUIPasteSpecial)
/***********************************************************************
* OleUIPasteSpecialW (OLEDLG.22)
*/
UINT WINAPI OleUIPasteSpecialW(LPOLEUIPASTESPECIALW lpOleUIPasteSpecial)
UINT WINAPI OleUIPasteSpecialW(LPOLEUIPASTESPECIALW ps)
{
FIXME("(%p): stub\n", lpOleUIPasteSpecial);
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return OLEUI_FALSE;
TRACE("(%p)\n", ps);
if(TRACE_ON(ole)) dump_pastespecial(ps);
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return OLEUI_FALSE;
}