| /* |
| * OLEDLG library |
| * |
| * Copyright 1998 Patrik Stridvall |
| * |
| * This library is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU Lesser General Public |
| * License as published by the Free Software Foundation; either |
| * version 2.1 of the License, or (at your option) any later version. |
| * |
| * This library is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| * Lesser General Public License for more details. |
| * |
| * You should have received a copy of the GNU Lesser General Public |
| * License along with this library; if not, write to the Free Software |
| * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA |
| */ |
| |
| #include <stdarg.h> |
| |
| #include "windef.h" |
| #include "winbase.h" |
| #include "winerror.h" |
| #include "wingdi.h" |
| #include "winuser.h" |
| #include "oledlg.h" |
| #include "ole2.h" |
| #include "oledlg_private.h" |
| |
| #include "wine/debug.h" |
| |
| WINE_DEFAULT_DEBUG_CHANNEL(ole); |
| |
| HINSTANCE OLEDLG_hInstance = 0; |
| |
| UINT cf_embed_source; |
| UINT cf_embedded_object; |
| UINT cf_link_source; |
| UINT cf_object_descriptor; |
| UINT cf_link_src_descriptor; |
| UINT cf_ownerlink; |
| UINT cf_filename; |
| UINT cf_filenamew; |
| |
| UINT oleui_msg_help; |
| UINT oleui_msg_enddialog; |
| |
| static void register_clipboard_formats(void) |
| { |
| /* These used to be declared in olestd.h, but that seems to have been removed from the api */ |
| static const WCHAR CF_EMBEDSOURCEW[] = { 'E','m','b','e','d',' ','S','o','u','r','c','e',0 }; |
| static const WCHAR CF_EMBEDDEDOBJECTW[] = { 'E','m','b','e','d','d','e','d',' ','O','b','j','e','c','t',0 }; |
| static const WCHAR CF_LINKSOURCEW[] = { 'L','i','n','k',' ','S','o','u','r','c','e',0 }; |
| static const WCHAR CF_OBJECTDESCRIPTORW[] = { 'O','b','j','e','c','t',' ','D','e','s','c','r','i','p','t','o','r',0 }; |
| static const WCHAR CF_LINKSRCDESCRIPTORW[] = { 'L','i','n','k',' ','S','o','u','r','c','e',' ','D','e','s','c','r','i','p','t','o','r',0 }; |
| static const WCHAR CF_OWNERLINKW[] = { 'O','w','n','e','r','L','i','n','k',0 }; |
| static const WCHAR CF_FILENAMEW[] = { 'F','i','l','e','N','a','m','e',0 }; |
| static const WCHAR CF_FILENAMEWW[] = { 'F','i','l','e','N','a','m','e','W',0 }; |
| |
| /* Load in the same order as native to make debugging easier */ |
| cf_object_descriptor = RegisterClipboardFormatW(CF_OBJECTDESCRIPTORW); |
| cf_link_src_descriptor = RegisterClipboardFormatW(CF_LINKSRCDESCRIPTORW); |
| cf_embed_source = RegisterClipboardFormatW(CF_EMBEDSOURCEW); |
| cf_embedded_object = RegisterClipboardFormatW(CF_EMBEDDEDOBJECTW); |
| cf_link_source = RegisterClipboardFormatW(CF_LINKSOURCEW); |
| cf_ownerlink = RegisterClipboardFormatW(CF_OWNERLINKW); |
| cf_filename = RegisterClipboardFormatW(CF_FILENAMEW); |
| cf_filenamew = RegisterClipboardFormatW(CF_FILENAMEWW); |
| } |
| |
| static void register_messages(void) |
| { |
| oleui_msg_help = RegisterWindowMessageW(SZOLEUI_MSG_HELPW); |
| oleui_msg_enddialog = RegisterWindowMessageW(SZOLEUI_MSG_ENDDIALOGW); |
| } |
| |
| /*********************************************************************** |
| * DllMain |
| */ |
| BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID fImpLoad) |
| { |
| TRACE("%p 0x%x %p\n", hinstDLL, fdwReason, fImpLoad); |
| |
| switch(fdwReason) { |
| case DLL_PROCESS_ATTACH: |
| DisableThreadLibraryCalls(hinstDLL); |
| OLEDLG_hInstance = hinstDLL; |
| register_clipboard_formats(); |
| register_messages(); |
| break; |
| |
| case DLL_PROCESS_DETACH: |
| OLEDLG_hInstance = 0; |
| break; |
| } |
| return TRUE; |
| } |
| |
| |
| /*********************************************************************** |
| * OleUIAddVerbMenuA (OLEDLG.1) |
| */ |
| BOOL WINAPI OleUIAddVerbMenuA( |
| LPOLEOBJECT lpOleObj, LPCSTR lpszShortType, |
| HMENU hMenu, UINT uPos, UINT uIDVerbMin, UINT uIDVerbMax, |
| BOOL bAddConvert, UINT idConvert, HMENU *lphMenu) |
| { |
| FIXME("(%p, %s, %p, %d, %d, %d, %d, %d, %p): stub\n", |
| lpOleObj, debugstr_a(lpszShortType), |
| hMenu, uPos, uIDVerbMin, uIDVerbMax, |
| bAddConvert, idConvert, lphMenu |
| ); |
| SetLastError(ERROR_CALL_NOT_IMPLEMENTED); |
| return FALSE; |
| } |
| |
| /*********************************************************************** |
| * OleUIAddVerbMenuW (OLEDLG.14) |
| */ |
| BOOL WINAPI OleUIAddVerbMenuW( |
| LPOLEOBJECT lpOleObj, LPCWSTR lpszShortType, |
| HMENU hMenu, UINT uPos, UINT uIDVerbMin, UINT uIDVerbMax, |
| BOOL bAddConvert, UINT idConvert, HMENU *lphMenu) |
| { |
| FIXME("(%p, %s, %p, %d, %d, %d, %d, %d, %p): stub\n", |
| lpOleObj, debugstr_w(lpszShortType), |
| hMenu, uPos, uIDVerbMin, uIDVerbMax, |
| bAddConvert, idConvert, lphMenu |
| ); |
| SetLastError(ERROR_CALL_NOT_IMPLEMENTED); |
| return FALSE; |
| } |
| |
| /*********************************************************************** |
| * OleUICanConvertOrActivateAs (OLEDLG.2) |
| */ |
| BOOL WINAPI OleUICanConvertOrActivateAs( |
| REFCLSID rClsid, BOOL fIsLinkedObject, WORD wFormat) |
| { |
| FIXME("(%p, %d, %hd): stub\n", |
| rClsid, fIsLinkedObject, wFormat |
| ); |
| SetLastError(ERROR_CALL_NOT_IMPLEMENTED); |
| return FALSE; |
| } |
| |
| /*********************************************************************** |
| * OleUIInsertObjectW (OLEDLG.20) |
| */ |
| UINT WINAPI OleUIInsertObjectW(LPOLEUIINSERTOBJECTW lpOleUIInsertObject) |
| { |
| FIXME("(%p): stub\n", lpOleUIInsertObject); |
| SetLastError(ERROR_CALL_NOT_IMPLEMENTED); |
| return OLEUI_FALSE; |
| } |
| |
| /*********************************************************************** |
| * OleUIEditLinksA (OLEDLG.5) |
| */ |
| UINT WINAPI OleUIEditLinksA(LPOLEUIEDITLINKSA lpOleUIEditLinks) |
| { |
| FIXME("(%p): stub\n", lpOleUIEditLinks); |
| SetLastError(ERROR_CALL_NOT_IMPLEMENTED); |
| return OLEUI_FALSE; |
| } |
| |
| /*********************************************************************** |
| * OleUIEditLinksW (OLEDLG.19) |
| */ |
| UINT WINAPI OleUIEditLinksW(LPOLEUIEDITLINKSW lpOleUIEditLinks) |
| { |
| FIXME("(%p): stub\n", lpOleUIEditLinks); |
| SetLastError(ERROR_CALL_NOT_IMPLEMENTED); |
| return OLEUI_FALSE; |
| } |
| |
| /*********************************************************************** |
| * OleUIChangeIconA (OLEDLG.6) |
| */ |
| UINT WINAPI OleUIChangeIconA( |
| LPOLEUICHANGEICONA lpOleUIChangeIcon) |
| { |
| FIXME("(%p): stub\n", lpOleUIChangeIcon); |
| SetLastError(ERROR_CALL_NOT_IMPLEMENTED); |
| return OLEUI_FALSE; |
| } |
| |
| /*********************************************************************** |
| * OleUIChangeIconW (OLEDLG.16) |
| */ |
| UINT WINAPI OleUIChangeIconW( |
| LPOLEUICHANGEICONW lpOleUIChangeIcon) |
| { |
| FIXME("(%p): stub\n", lpOleUIChangeIcon); |
| SetLastError(ERROR_CALL_NOT_IMPLEMENTED); |
| return OLEUI_FALSE; |
| } |
| |
| /*********************************************************************** |
| * OleUIConvertA (OLEDLG.7) |
| */ |
| UINT WINAPI OleUIConvertA(LPOLEUICONVERTA lpOleUIConvert) |
| { |
| FIXME("(%p): stub\n", lpOleUIConvert); |
| SetLastError(ERROR_CALL_NOT_IMPLEMENTED); |
| return OLEUI_FALSE; |
| } |
| |
| /*********************************************************************** |
| * OleUIConvertW (OLEDLG.18) |
| */ |
| UINT WINAPI OleUIConvertW(LPOLEUICONVERTW lpOleUIConvert) |
| { |
| FIXME("(%p): stub\n", lpOleUIConvert); |
| SetLastError(ERROR_CALL_NOT_IMPLEMENTED); |
| return OLEUI_FALSE; |
| } |
| |
| /*********************************************************************** |
| * OleUIBusyA (OLEDLG.8) |
| */ |
| UINT WINAPI OleUIBusyA(LPOLEUIBUSYA lpOleUIBusy) |
| { |
| FIXME("(%p): stub\n", lpOleUIBusy); |
| SetLastError(ERROR_CALL_NOT_IMPLEMENTED); |
| return OLEUI_FALSE; |
| } |
| |
| /*********************************************************************** |
| * OleUIBusyW (OLEDLG.15) |
| */ |
| UINT WINAPI OleUIBusyW(LPOLEUIBUSYW lpOleUIBusy) |
| { |
| FIXME("(%p): stub\n", lpOleUIBusy); |
| SetLastError(ERROR_CALL_NOT_IMPLEMENTED); |
| return OLEUI_FALSE; |
| } |
| |
| /*********************************************************************** |
| * OleUIUpdateLinksA (OLEDLG.9) |
| */ |
| BOOL WINAPI OleUIUpdateLinksA( |
| LPOLEUILINKCONTAINERA lpOleUILinkCntr, |
| HWND hwndParent, LPSTR lpszTitle, INT cLinks) |
| { |
| FIXME("(%p, %p, %s, %d): stub\n", |
| lpOleUILinkCntr, hwndParent, debugstr_a(lpszTitle), cLinks |
| ); |
| SetLastError(ERROR_CALL_NOT_IMPLEMENTED); |
| return FALSE; |
| } |
| |
| /*********************************************************************** |
| * OleUIUpdateLinksW (OLEDLG.23) |
| */ |
| BOOL WINAPI OleUIUpdateLinksW( |
| LPOLEUILINKCONTAINERW lpOleUILinkCntr, |
| HWND hwndParent, LPWSTR lpszTitle, INT cLinks) |
| { |
| FIXME("(%p, %p, %s, %d): stub\n", |
| lpOleUILinkCntr, hwndParent, debugstr_w(lpszTitle), cLinks |
| ); |
| SetLastError(ERROR_CALL_NOT_IMPLEMENTED); |
| return FALSE; |
| } |
| |
| /*********************************************************************** |
| * OleUIPromptUserA (OLEDLG.10) |
| */ |
| INT WINAPIV OleUIPromptUserA( |
| INT nTemplate, HWND hwndParent, ...) |
| { |
| FIXME("(%d, %p, ...): stub\n", nTemplate, hwndParent); |
| SetLastError(ERROR_CALL_NOT_IMPLEMENTED); |
| return OLEUI_FALSE; |
| } |
| |
| /*********************************************************************** |
| * OleUIPromptUserW (OLEDLG.13) |
| */ |
| INT WINAPIV OleUIPromptUserW( |
| INT nTemplate, HWND hwndParent, ...) |
| { |
| FIXME("(%d, %p, ...): stub\n", nTemplate, hwndParent); |
| SetLastError(ERROR_CALL_NOT_IMPLEMENTED); |
| return OLEUI_FALSE; |
| } |
| |
| /*********************************************************************** |
| * OleUIObjectPropertiesA (OLEDLG.11) |
| */ |
| UINT WINAPI OleUIObjectPropertiesA( |
| LPOLEUIOBJECTPROPSA lpOleUIObjectProps) |
| { |
| FIXME("(%p): stub\n", lpOleUIObjectProps); |
| SetLastError(ERROR_CALL_NOT_IMPLEMENTED); |
| return OLEUI_FALSE; |
| } |
| |
| /*********************************************************************** |
| * OleUIObjectPropertiesW (OLEDLG.21) |
| */ |
| UINT WINAPI OleUIObjectPropertiesW( |
| LPOLEUIOBJECTPROPSW lpOleUIObjectProps) |
| { |
| FIXME("(%p): stub\n", lpOleUIObjectProps); |
| SetLastError(ERROR_CALL_NOT_IMPLEMENTED); |
| return OLEUI_FALSE; |
| } |
| |
| /*********************************************************************** |
| * OleUIChangeSourceA (OLEDLG.12) |
| */ |
| UINT WINAPI OleUIChangeSourceA( |
| LPOLEUICHANGESOURCEA lpOleUIChangeSource) |
| { |
| FIXME("(%p): stub\n", lpOleUIChangeSource); |
| SetLastError(ERROR_CALL_NOT_IMPLEMENTED); |
| return OLEUI_FALSE; |
| } |
| |
| /*********************************************************************** |
| * OleUIChangeSourceW (OLEDLG.17) |
| */ |
| UINT WINAPI OleUIChangeSourceW( |
| LPOLEUICHANGESOURCEW lpOleUIChangeSource) |
| { |
| FIXME("(%p): stub\n", lpOleUIChangeSource); |
| SetLastError(ERROR_CALL_NOT_IMPLEMENTED); |
| return OLEUI_FALSE; |
| } |