Huw Davies : oledlg: Debugging code to dump the OLEUIPASTESPECIAL
structure .
Alexandre Julliard
julliard at wine.codeweavers.com
Fri Oct 20 04:45:49 CDT 2006
Module: wine
Branch: master
Commit: f08c5c2ccf572af0083557e0736873972a219c9d
URL: http://source.winehq.org/git/wine.git/?a=commit;h=f08c5c2ccf572af0083557e0736873972a219c9d
Author: Huw Davies <huw at codeweavers.com>
Date: Wed Oct 18 16:59:35 2006 +0100
oledlg: Debugging code to dump the OLEUIPASTESPECIAL structure.
---
dlls/oledlg/pastespl.c | 75 +++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 71 insertions(+), 4 deletions(-)
diff --git a/dlls/oledlg/pastespl.c b/dlls/oledlg/pastespl.c
index b146983..94547dd 100644
--- a/dlls/oledlg/pastespl.c
+++ b/dlls/oledlg/pastespl.c
@@ -31,6 +31,70 @@ #include "wine/debug.h"
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(LPOLEUIPA
/***********************************************************************
* 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;
}
More information about the wine-cvs
mailing list