Import and merge Wine-20041201

svn path=/trunk/; revision=12583
This commit is contained in:
Gé van Geldorp 2004-12-31 15:35:07 +00:00
parent 448e644f09
commit d2b43c9093
16 changed files with 1531 additions and 0 deletions

View file

@ -0,0 +1,16 @@
TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../..
SRCDIR = @srcdir@
VPATH = @srcdir@
MODULE = oledlg.dll
IMPORTS = ole32 comdlg32 user32 advapi32 kernel32 ntdll
C_SRCS = \
insobjdlg.c \
oledlg_main.c
RC_SRCS = rsrc.rc
@MAKE_DLL_RULES@
### Dependencies:

View file

@ -0,0 +1,21 @@
# $Id: Makefile.ros-template 11910 2004-12-03 23:37:44Z blight $
TARGET_NAME = oledlg
TARGET_OBJECTS = @C_SRCS@
TARGET_CFLAGS = @EXTRADEFS@
TARGET_SDKLIBS = @IMPORTS@ wine.a wine_uuid.a ntdll.a
TARGET_BASE = $(TARGET_BASE_LIB_OLEDLG)
TARGET_RC_SRCS = @RC_SRCS@
TARGET_RC_BINSRC = @RC_BINSRC@
TARGET_RC_BINARIES = @RC_BINARIES@
default: all
DEP_OBJECTS = $(TARGET_OBJECTS)
include $(TOOLS_PATH)/depend.mk

View file

@ -0,0 +1,628 @@
/*
* OLEDLG library
*
* Copyright 2003 Ulrich Czekalla for CodeWeavers
*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <stdarg.h>
#include <stdio.h>
#include "windef.h"
#include "winbase.h"
#include "winreg.h"
#include "winternl.h"
#include "winnls.h"
#include "winerror.h"
#include "wingdi.h"
#include "winuser.h"
#include "wine/debug.h"
#include "wine/unicode.h"
#include "oledlg.h"
#include "resource.h"
WINE_DEFAULT_DEBUG_CHANNEL(oledlg);
typedef struct
{
HWND hwndSelf;
BOOL bObjListInit; /* Object list has been initialized */
LPOLEUIINSERTOBJECTA lpOleUIInsertObject;
HWND hwndObjTypeLBL;
HWND hwndObjTypeLB;
HWND hwndFileLBL;
HWND hwndFileTB;
HWND hwndCreateCtrlCB;
HWND hwndCreateNewCB;
HWND hwndCreateFromFileCB;
HWND hwndDisplayIconCB;
HWND hwndAddCtrlBTN;
HWND hwndBrowseBTN;
HWND hwndResultDesc;
} InsertObjectDlgInfo;
INT_PTR CALLBACK UIInsertObjectDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
static LRESULT UIINSOBJDLG_OnWMCommand(HWND hwnd, WPARAM wParam, LPARAM lParam);
static void UIINSERTOBJECTDLG_InitDialog(InsertObjectDlgInfo* pdlgInfo);
static void UIINSERTOBJECTDLG_SelectCreateCtrl(InsertObjectDlgInfo* pdlgInfo);
static void UIINSERTOBJECTDLG_SelectCreateFromFile(InsertObjectDlgInfo* pdlgInfo);
static void UIINSERTOBJECTDLG_SelectCreateNew(InsertObjectDlgInfo* pdlgInfo);
static BOOL UIINSERTOBJECTDLG_PopulateObjectTypes(InsertObjectDlgInfo* pdlgInfo);
static void UIINSERTOBJECTDLG_FreeObjectTypes(InsertObjectDlgInfo* pdlgInfo);
static void UIINSERTOBJECTDLG_SelChange(InsertObjectDlgInfo* pdlgInfo);
static BOOL UIINSERTOBJECTDLG_OnOpen(InsertObjectDlgInfo* pdlgInfo);
static void UIINSERTOBJECTDLG_BrowseFile(InsertObjectDlgInfo* pdlgInfo);
static void UIINSERTOBJECTDLG_AddControl(InsertObjectDlgInfo* pdlgInfo);
typedef HRESULT (*DLLREGISTER) (void);
extern HINSTANCE OLEDLG_hInstance;
const char *OleUIInsertObjectInfoStr = "OleUIInsertObjectInfoStr";
/***********************************************************************
* OleUIInsertObjectA (OLEDLG.3)
*/
UINT WINAPI OleUIInsertObjectA(LPOLEUIINSERTOBJECTA lpOleUIInsertObject)
{
LRESULT lRes;
LPCVOID template;
HRSRC hRes;
InsertObjectDlgInfo dlgInfo;
HANDLE hDlgTmpl = 0;
if (lpOleUIInsertObject->lpszTemplate || lpOleUIInsertObject->hResource)
FIXME("Customized template not supported\n");
/* Create the dialog from a template */
if(!(hRes = FindResourceA(OLEDLG_hInstance,MAKEINTRESOURCEA(UIINSERTOBJECT),
(LPSTR)RT_DIALOG)))
{
return OLEUI_ERR_FINDTEMPLATEFAILURE;
}
if (!(hDlgTmpl = LoadResource(OLEDLG_hInstance, hRes )) ||
!(template = LockResource( hDlgTmpl )))
{
return OLEUI_ERR_LOADTEMPLATEFAILURE;
}
/* Initialize InsertObjectDlgInfo structure */
dlgInfo.lpOleUIInsertObject = lpOleUIInsertObject;
dlgInfo.bObjListInit = FALSE;
lRes = DialogBoxIndirectParamA(OLEDLG_hInstance, (const DLGTEMPLATE*) template,
lpOleUIInsertObject->hWndOwner, UIInsertObjectDlgProc,
(LPARAM) &dlgInfo);
/* Unable to create the dialog */
if( lRes == -1)
return OLEUI_ERR_DIALOGFAILURE;
return lRes;
}
/***********************************************************************
* UIInsertObjectDlgProc
*
* OLE UI Insert Object dialog procedure
*/
INT_PTR CALLBACK UIInsertObjectDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
InsertObjectDlgInfo* pdlgInfo = (InsertObjectDlgInfo*) GetPropA(hwnd,OleUIInsertObjectInfoStr);
switch(uMsg)
{
case WM_INITDIALOG:
{
InsertObjectDlgInfo* pdlgInfo = (InsertObjectDlgInfo*)lParam;
pdlgInfo->hwndSelf = hwnd;
SetPropA(hwnd, OleUIInsertObjectInfoStr, (HANDLE) pdlgInfo);
UIINSERTOBJECTDLG_InitDialog(pdlgInfo);
return 0;
}
case WM_COMMAND:
return UIINSOBJDLG_OnWMCommand(hwnd, wParam, lParam);
case WM_DESTROY:
if (pdlgInfo)
UIINSERTOBJECTDLG_FreeObjectTypes(pdlgInfo);
RemovePropA(hwnd, OleUIInsertObjectInfoStr);
return FALSE;
default :
return FALSE;
}
}
/***********************************************************************
* UIINSOBJDLG_OnWMCommand
*
* WM_COMMAND message handler
*/
static LRESULT UIINSOBJDLG_OnWMCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
{
WORD wNotifyCode = HIWORD(wParam);
WORD wID = LOWORD(wParam);
InsertObjectDlgInfo* pdlgInfo = (InsertObjectDlgInfo*) GetPropA(hwnd,OleUIInsertObjectInfoStr);
switch(wID)
{
case IDOK:
EndDialog(hwnd, UIINSERTOBJECTDLG_OnOpen(pdlgInfo));
break;
case IDCANCEL:
EndDialog(hwnd, FALSE);
break;
case IDC_CREATECONTROL:
UIINSERTOBJECTDLG_SelectCreateCtrl(pdlgInfo);
break;
case IDC_CREATENEW:
UIINSERTOBJECTDLG_SelectCreateNew(pdlgInfo);
break;
case IDC_CREATEFROMFILE:
UIINSERTOBJECTDLG_SelectCreateFromFile(pdlgInfo);
break;
case IDC_BROWSE:
UIINSERTOBJECTDLG_BrowseFile(pdlgInfo);
break;
case IDC_ADDCONTROL:
UIINSERTOBJECTDLG_AddControl(pdlgInfo);
case IDC_OBJTYPELIST:
{
if (wNotifyCode == LBN_SELCHANGE)
UIINSERTOBJECTDLG_SelChange(pdlgInfo);
break;
}
}
return 0;
}
/***********************************************************************
* UIINSERTOBJECTDLG_InitDialog
*
* Initialize dialog display
*/
static void UIINSERTOBJECTDLG_InitDialog(InsertObjectDlgInfo* pdlgInfo)
{
/* Initialize InsertObjectDlgInfo data structure */
pdlgInfo->hwndObjTypeLB = GetDlgItem(pdlgInfo->hwndSelf, IDC_OBJTYPELIST);
pdlgInfo->hwndObjTypeLBL = GetDlgItem(pdlgInfo->hwndSelf, IDC_OBJTYPELBL);
pdlgInfo->hwndFileLBL = GetDlgItem(pdlgInfo->hwndSelf, IDC_FILELBL);
pdlgInfo->hwndFileTB = GetDlgItem(pdlgInfo->hwndSelf, IDC_FILE);
pdlgInfo->hwndCreateCtrlCB = GetDlgItem(pdlgInfo->hwndSelf, IDC_CREATECONTROL);
pdlgInfo->hwndCreateNewCB = GetDlgItem(pdlgInfo->hwndSelf, IDC_CREATENEW);
pdlgInfo->hwndCreateFromFileCB = GetDlgItem(pdlgInfo->hwndSelf, IDC_CREATEFROMFILE);
pdlgInfo->hwndDisplayIconCB = GetDlgItem(pdlgInfo->hwndSelf, IDC_ASICON);
pdlgInfo->hwndAddCtrlBTN = GetDlgItem(pdlgInfo->hwndSelf, IDC_ADDCONTROL);
pdlgInfo->hwndBrowseBTN = GetDlgItem(pdlgInfo->hwndSelf, IDC_BROWSE);
pdlgInfo->hwndResultDesc = GetDlgItem(pdlgInfo->hwndSelf, IDC_RESULTDESC);
/* Setup dialog controls based on flags */
if (pdlgInfo->lpOleUIInsertObject->lpszCaption)
SetWindowTextA(pdlgInfo->hwndSelf, pdlgInfo->lpOleUIInsertObject->lpszCaption);
ShowWindow(pdlgInfo->hwndCreateCtrlCB, (pdlgInfo->lpOleUIInsertObject->dwFlags &
IOF_SHOWINSERTCONTROL) ? SW_SHOW : SW_HIDE);
ShowWindow(pdlgInfo->hwndDisplayIconCB, (pdlgInfo->lpOleUIInsertObject->dwFlags &
IOF_CHECKDISPLAYASICON) ? SW_SHOW : SW_HIDE);
EnableWindow(pdlgInfo->hwndDisplayIconCB, (pdlgInfo->lpOleUIInsertObject->dwFlags &
IOF_DISABLEDISPLAYASICON) ? FALSE : TRUE);
if (pdlgInfo->lpOleUIInsertObject->dwFlags & IOF_SELECTCREATECONTROL)
UIINSERTOBJECTDLG_SelectCreateCtrl(pdlgInfo);
else if (pdlgInfo->lpOleUIInsertObject->dwFlags & IOF_SELECTCREATEFROMFILE)
UIINSERTOBJECTDLG_SelectCreateFromFile(pdlgInfo);
else /* (pdlgInfo->lpOleUIInsertObject->dwFlags & IOF_SELECTCREATENEW) */
UIINSERTOBJECTDLG_SelectCreateNew(pdlgInfo);
}
/***********************************************************************
* UIINSERTOBJECTDLG_SelectCreateCtrl
*
* Select Create Control Radio Button
*/
static void UIINSERTOBJECTDLG_SelectCreateCtrl(InsertObjectDlgInfo* pdlgInfo)
{
ShowWindow(pdlgInfo->hwndDisplayIconCB, SW_HIDE);
ShowWindow(pdlgInfo->hwndFileLBL, SW_HIDE);
ShowWindow(pdlgInfo->hwndFileTB, SW_HIDE);
ShowWindow(pdlgInfo->hwndBrowseBTN, SW_HIDE);
ShowWindow(pdlgInfo->hwndObjTypeLBL, SW_SHOW);
ShowWindow(pdlgInfo->hwndObjTypeLB, SW_SHOW);
ShowWindow(pdlgInfo->hwndAddCtrlBTN, SW_SHOW);
SendMessageA(pdlgInfo->hwndCreateCtrlCB, BM_SETCHECK, BST_CHECKED, 0);
/* Populate object type listbox */
if (!pdlgInfo->bObjListInit)
UIINSERTOBJECTDLG_PopulateObjectTypes(pdlgInfo);
}
/***********************************************************************
* UIINSERTOBJECTDLG_SelectCreateNew
*
* Select Create New Radio Button
*/
static void UIINSERTOBJECTDLG_SelectCreateNew(InsertObjectDlgInfo* pdlgInfo)
{
ShowWindow(pdlgInfo->hwndFileLBL, SW_HIDE);
ShowWindow(pdlgInfo->hwndFileTB, SW_HIDE);
ShowWindow(pdlgInfo->hwndAddCtrlBTN, SW_HIDE);
ShowWindow(pdlgInfo->hwndBrowseBTN, SW_HIDE);
if (pdlgInfo->lpOleUIInsertObject->dwFlags & IOF_CHECKDISPLAYASICON)
ShowWindow(pdlgInfo->hwndDisplayIconCB, SW_SHOW);
ShowWindow(pdlgInfo->hwndObjTypeLBL, SW_SHOW);
ShowWindow(pdlgInfo->hwndObjTypeLB, SW_SHOW);
SendMessageA(pdlgInfo->hwndCreateNewCB, BM_SETCHECK, BST_CHECKED, 0);
if (!pdlgInfo->bObjListInit)
UIINSERTOBJECTDLG_PopulateObjectTypes(pdlgInfo);
UIINSERTOBJECTDLG_SelChange(pdlgInfo);
}
/***********************************************************************
* UIINSERTOBJECTDLG_SelectCreateFromFile
*
* Select Create From File Radio Button
*/
static void UIINSERTOBJECTDLG_SelectCreateFromFile(InsertObjectDlgInfo* pdlgInfo)
{
char resstr[MAX_PATH];
ShowWindow(pdlgInfo->hwndAddCtrlBTN, SW_HIDE);
ShowWindow(pdlgInfo->hwndObjTypeLBL, SW_HIDE);
ShowWindow(pdlgInfo->hwndObjTypeLB, SW_HIDE);
if (pdlgInfo->lpOleUIInsertObject->dwFlags & IOF_CHECKDISPLAYASICON)
ShowWindow(pdlgInfo->hwndDisplayIconCB, SW_SHOW);
ShowWindow(pdlgInfo->hwndFileLBL, SW_SHOW);
ShowWindow(pdlgInfo->hwndFileTB, SW_SHOW);
ShowWindow(pdlgInfo->hwndBrowseBTN, SW_SHOW);
SendMessageA(pdlgInfo->hwndCreateFromFileCB, BM_SETCHECK, BST_CHECKED, 0);
if (LoadStringA(OLEDLG_hInstance, IDS_RESULTFILEOBJDESC, resstr, MAX_PATH))
SendMessageA(pdlgInfo->hwndResultDesc, WM_SETTEXT, 0, (LPARAM)resstr);
}
/***********************************************************************
* UIINSERTOBJECTDLG_PopulateObjectTypes
*
* Populate Object Type listbox
*/
static BOOL UIINSERTOBJECTDLG_PopulateObjectTypes(InsertObjectDlgInfo* pdlgInfo)
{
DWORD i, len;
HKEY hkclsids;
HKEY hkey;
CLSID clsid;
HRESULT ret;
CHAR szclsid[128];
CHAR keydesc[MAX_PATH];
CHAR keyname[MAX_PATH];
WCHAR wszclsid[128];
DWORD index = 0;
UIINSERTOBJECTDLG_FreeObjectTypes(pdlgInfo);
RegOpenKeyExA(HKEY_CLASSES_ROOT, "CLSID", 0, KEY_READ, &hkclsids);
while (ERROR_SUCCESS == (ret = RegEnumKeyA(hkclsids, index, szclsid, MAX_PATH)))
{
index++;
RegOpenKeyExA(hkclsids, szclsid, 0, KEY_READ, &hkey);
len = MAX_PATH;
if (ERROR_SUCCESS != RegQueryValueA(hkey, "Insertable", keyname, &len))
continue;
len = MAX_PATH;
if (ERROR_SUCCESS == RegQueryValueA(hkey, "NotInsertable", keyname, &len))
continue;
RtlMultiByteToUnicodeN(wszclsid, MAX_PATH, NULL, szclsid, MAX_PATH);
CLSIDFromString(wszclsid, &clsid);
for (i = 0; i < pdlgInfo->lpOleUIInsertObject->cClsidExclude; i++)
if (IsEqualGUID(&pdlgInfo->lpOleUIInsertObject->lpClsidExclude[i], &clsid))
break;
if (i < pdlgInfo->lpOleUIInsertObject->cClsidExclude)
continue;
len = MAX_PATH;
if (ERROR_SUCCESS == RegQueryValueA(hkey, NULL, keydesc, &len))
{
CLSID* lpclsid = (CLSID*) HeapAlloc(GetProcessHeap(), 0, sizeof(CLSID));
memcpy(lpclsid, &clsid, sizeof(CLSID));
len = SendMessageA(pdlgInfo->hwndObjTypeLB, LB_ADDSTRING, 0, (LPARAM)keydesc);
SendMessageA(pdlgInfo->hwndObjTypeLB, LB_SETITEMDATA, (WPARAM)len, (LPARAM)lpclsid);
}
}
pdlgInfo->bObjListInit = (ret == ERROR_NO_MORE_ITEMS);
return pdlgInfo->bObjListInit;
}
/***********************************************************************
* UIINSERTOBJECTDLG_FreeObjectTypes
*
* Free Object Types listbox
*/
static void UIINSERTOBJECTDLG_FreeObjectTypes(InsertObjectDlgInfo* pdlgInfo)
{
UINT i, count;
count = SendMessageA(pdlgInfo->hwndObjTypeLB, LB_GETCOUNT, (WPARAM)0, (LPARAM)0);
for (i = 0; i < count; i++)
{
CLSID* lpclsid = (CLSID*) SendMessageA(pdlgInfo->hwndObjTypeLB,
LB_GETITEMDATA, (WPARAM)i, (LPARAM)0);
HeapFree(GetProcessHeap(), 0, lpclsid);
}
}
/***********************************************************************
* UIINSERTOBJECTDLG_SelChange
*
* Handle object type selection change
*/
static void UIINSERTOBJECTDLG_SelChange(InsertObjectDlgInfo* pdlgInfo)
{
INT index;
CHAR objname[MAX_PATH];
CHAR objdesc[MAX_PATH];
CHAR resstr[MAX_PATH];
TRACE("\n");
if (LoadStringA(OLEDLG_hInstance, IDS_RESULTOBJDESC, resstr, MAX_PATH) &&
((index = SendMessageA(pdlgInfo->hwndObjTypeLB, LB_GETCURSEL, 0, 0)) >= 0) &&
SendMessageA(pdlgInfo->hwndObjTypeLB, LB_GETTEXT, (WPARAM)index, (LPARAM)objname))
sprintf(objdesc, resstr, objname);
else
objdesc[0] = 0;
SendMessageA(pdlgInfo->hwndResultDesc, WM_SETTEXT, 0, (LPARAM)objdesc);
}
/***********************************************************************
* UIINSERTOBJECTDLG_SelChange
*
* Handle OK Button
*/
static BOOL UIINSERTOBJECTDLG_OnOpen(InsertObjectDlgInfo* pdlgInfo)
{
BOOL bret = FALSE;
if (BST_CHECKED == SendMessageA(pdlgInfo->hwndCreateCtrlCB, BM_GETCHECK, 0, 0) ||
BST_CHECKED == SendMessageA(pdlgInfo->hwndCreateNewCB, BM_GETCHECK, 0, 0))
{
INT index = SendMessageA(pdlgInfo->hwndObjTypeLB, LB_GETCURSEL, 0, 0);
if (index >= 0)
{
CLSID* clsid = (CLSID*) SendMessageA(pdlgInfo->hwndObjTypeLB,
LB_GETITEMDATA, (WPARAM)index, 0);
memcpy(&pdlgInfo->lpOleUIInsertObject->clsid, clsid, sizeof(CLSID));
if (pdlgInfo->lpOleUIInsertObject->dwFlags & IOF_CREATENEWOBJECT)
{
pdlgInfo->lpOleUIInsertObject->sc= OleCreate(
&pdlgInfo->lpOleUIInsertObject->clsid,
&pdlgInfo->lpOleUIInsertObject->iid,
pdlgInfo->lpOleUIInsertObject->oleRender,
pdlgInfo->lpOleUIInsertObject->lpFormatEtc,
pdlgInfo->lpOleUIInsertObject->lpIOleClientSite,
pdlgInfo->lpOleUIInsertObject->lpIStorage,
pdlgInfo->lpOleUIInsertObject->ppvObj);
}
bret = TRUE;
}
}
else if (BST_CHECKED == SendMessageA(pdlgInfo->hwndCreateFromFileCB, BM_GETCHECK, 0, 0))
{
char fname[MAX_PATH];
if (pdlgInfo->lpOleUIInsertObject->lpszFile)
{
HRESULT hres;
WCHAR wcsFile[MAX_PATH];
SendMessageA(pdlgInfo->hwndFileTB, WM_GETTEXT, (WPARAM)MAX_PATH, (LPARAM)fname);
strncpy(pdlgInfo->lpOleUIInsertObject->lpszFile, fname, pdlgInfo->lpOleUIInsertObject->cchFile);
RtlMultiByteToUnicodeN(wcsFile, MAX_PATH, NULL, fname, MAX_PATH);
if (ERROR_SUCCESS == (hres = GetClassFile(wcsFile, &pdlgInfo->lpOleUIInsertObject->clsid)))
{
if (pdlgInfo->lpOleUIInsertObject->dwFlags & IOF_CREATEFILEOBJECT)
{
hres = OleCreateFromFile(
&pdlgInfo->lpOleUIInsertObject->clsid,
wcsFile,
&pdlgInfo->lpOleUIInsertObject->iid,
pdlgInfo->lpOleUIInsertObject->oleRender,
pdlgInfo->lpOleUIInsertObject->lpFormatEtc,
pdlgInfo->lpOleUIInsertObject->lpIOleClientSite,
pdlgInfo->lpOleUIInsertObject->lpIStorage,
pdlgInfo->lpOleUIInsertObject->ppvObj);
}
bret = TRUE;
}
pdlgInfo->lpOleUIInsertObject->sc = hres;
}
}
return bret;
}
/***********************************************************************
* UIINSERTOBJECTDLG_BrowseFile
*
* Browse for the file
*/
static void UIINSERTOBJECTDLG_BrowseFile(InsertObjectDlgInfo* pdlgInfo)
{
OPENFILENAMEA fn;
char fname[MAX_PATH];
char title[32];
fn.lStructSize = sizeof(OPENFILENAMEA);
fn.hwndOwner = pdlgInfo->hwndSelf;
fn.hInstance = 0;
fn.lpstrFilter = "All Files\0*.*\0\0";
fn.lpstrCustomFilter = NULL;
fn.nMaxCustFilter = 0;
fn.nFilterIndex = 0;
SendMessageA(pdlgInfo->hwndFileTB, WM_GETTEXT, (WPARAM)MAX_PATH, (LPARAM)fname);
fn.lpstrFile = fname;
fn.nMaxFile = MAX_PATH;
fn.lpstrFileTitle = NULL;
fn.nMaxFileTitle = 0;
fn.lpstrInitialDir = NULL;
LoadStringA(OLEDLG_hInstance, IDS_BROWSE, title, 32);
fn.lpstrTitle = title;
fn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST |
OFN_HIDEREADONLY | OFN_LONGNAMES;
fn.nFileOffset = 0;
fn.nFileExtension = 0;
fn.lpstrDefExt = NULL;
fn.lCustData = 0;
fn.lpfnHook = NULL;
fn.lpTemplateName = NULL;
if (GetOpenFileNameA(&fn))
SendMessageA(pdlgInfo->hwndFileTB, WM_SETTEXT, (WPARAM)0, (LPARAM)fn.lpstrFile);
}
/***********************************************************************
* UIINSERTOBJECTDLG_AddControl
*
* Add control to Object Type
*/
static void UIINSERTOBJECTDLG_AddControl(InsertObjectDlgInfo* pdlgInfo)
{
OPENFILENAMEA fn;
char fname[MAX_PATH];
char title[32];
fn.lStructSize = sizeof(OPENFILENAMEA);
fn.hwndOwner = pdlgInfo->hwndSelf;
fn.hInstance = 0;
fn.lpstrFilter = "OLE Controls\0*.ocx\0Libraries\0*.dll\0All Files\0*.*\0\0";
fn.lpstrCustomFilter = NULL;
fn.nMaxCustFilter = 0;
fn.nFilterIndex = 0;
fname[0] = 0;
fn.lpstrFile = fname;
fn.nMaxFile = MAX_PATH;
fn.lpstrFileTitle = NULL;
fn.nMaxFileTitle = 0;
fn.lpstrInitialDir = NULL;
LoadStringA(OLEDLG_hInstance, IDS_BROWSE, title, 32);
fn.lpstrTitle = title;
fn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST |
OFN_HIDEREADONLY | OFN_LONGNAMES;
fn.nFileOffset = 0;
fn.nFileExtension = 0;
fn.lpstrDefExt = NULL;
fn.lCustData = 0;
fn.lpfnHook = NULL;
fn.lpTemplateName = NULL;
if (GetOpenFileNameA(&fn))
{
HMODULE hMod;
BOOL bValid = FALSE;
hMod = LoadLibraryA(fn.lpstrFile);
if (hMod)
{
DLLREGISTER regproc;
regproc = (DLLREGISTER) GetProcAddress(hMod, "DllRegisterServer");
if (regproc)
{
if (S_OK == regproc())
{
UIINSERTOBJECTDLG_PopulateObjectTypes(pdlgInfo);
bValid = TRUE;
}
}
FreeLibrary(hMod);
}
if (!bValid)
{
char title[32];
char msg[256];
LoadStringA(OLEDLG_hInstance, IDS_NOTOLEMODCAPTION, title, 32);
LoadStringA(OLEDLG_hInstance, IDS_NOTOLEMOD, msg, 256);
MessageBoxA(pdlgInfo->hwndSelf, msg, title, MB_ICONEXCLAMATION);
}
}
}

View file

@ -0,0 +1,9 @@
# $Id: makefile 7619 2004-01-14 01:55:00Z sedwards $
PATH_TO_TOP = ../..
TARGET_TYPE = winedll
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk

View file

@ -0,0 +1,23 @@
1 stdcall OleUIAddVerbMenuA(ptr str long long long long long long ptr)
2 stdcall OleUICanConvertOrActivateAs(ptr long long)
3 stdcall OleUIInsertObjectA(ptr)
4 stdcall OleUIPasteSpecialA(ptr)
5 stdcall OleUIEditLinksA(ptr)
6 stdcall OleUIChangeIconA(ptr)
7 stdcall OleUIConvertA(ptr)
8 stdcall OleUIBusyA(ptr)
9 stdcall OleUIUpdateLinksA(ptr long str long)
10 varargs OleUIPromptUserA(long long)
11 stdcall OleUIObjectPropertiesA(ptr)
12 stdcall OleUIChangeSourceA(ptr)
13 varargs OleUIPromptUserW(long long)
14 stdcall OleUIAddVerbMenuW(ptr wstr long long long long long long ptr)
15 stdcall OleUIBusyW(ptr)
16 stdcall OleUIChangeIconW(ptr)
17 stdcall OleUIChangeSourceW(ptr)
18 stdcall OleUIConvertW(ptr)
19 stdcall OleUIEditLinksW(ptr)
20 stdcall OleUIInsertObjectW(ptr)
21 stdcall OleUIObjectPropertiesW(ptr)
22 stdcall OleUIPasteSpecialW(ptr)
23 stdcall OleUIUpdateLinksW(ptr long wstr long)

View file

@ -0,0 +1,57 @@
/*
* Czech resources or oledlg
* Copyright 2003 Ulrich Czekalla for CodeWeavers
* Copyright 2004 David Kredba
*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
UIINSERTOBJECT DIALOG DISCARDABLE 0, 0, 294, 151
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Vlo¾it objekt"
FONT 8, "MS Shell Dlg"
BEGIN
LISTBOX IDC_OBJTYPELIST,82,19,131,66,LBS_SORT |
LBS_NOINTEGRALHEIGHT | WS_VISIBLE | WS_VSCROLL |
WS_TABSTOP
LTEXT "Typ objektu:",IDC_OBJTYPELBL,82,7,53,8,WS_VISIBLE
DEFPUSHBUTTON "OK",IDOK,221,7,66,14
PUSHBUTTON "Storno",IDCANCEL,221,24,66,14
GROUPBOX "Výsledek",IDC_RESULT,7,103,208,41
CONTROL "Vytvoøit nový",IDC_CREATENEW,"Button",BS_AUTORADIOBUTTON |
WS_GROUP,7,20,62,10
CONTROL "Vytvoøit propojení",IDC_CREATECONTROL,"Button",
BS_AUTORADIOBUTTON | NOT WS_VISIBLE,7,54,62,10
CONTROL "Vytvoøit ze souboru",IDC_CREATEFROMFILE,"Button",
BS_AUTORADIOBUTTON,7,37,67,10
LTEXT "",IDC_RESULTDESC,49,112,159,23
PUSHBUTTON "Pøid&at propojení...",IDC_ADDCONTROL,81,88,63,14,NOT WS_VISIBLE
CONTROL "Zobrazit jako ikonu",IDC_ASICON,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP | NOT WS_VISIBLE,223,58,64,10
PUSHBUTTON "Procházet...",IDC_BROWSE,83,53,50,14,NOT WS_VISIBLE
LTEXT "Soubor:",IDC_FILELBL,83,27,20,8, NOT WS_VISIBLE
EDITTEXT IDC_FILE,83,37,132,13,ES_AUTOHSCROLL | NOT WS_VISIBLE
END
STRINGTABLE DISCARDABLE
{
IDS_RESULTOBJDESC "Vlo¾en nový %s objekt do Va¹eho dokumentu"
IDS_RESULTFILEOBJDESC "Vlo¾en obsah souboru jako objekt do Va¹eho dokumentu, tak¾e ho mù¾ete upravit programem, kterým byl vytvoøen."
IDS_BROWSE "Procházet"
IDS_NOTOLEMOD "Soubor není platným OLE modulem. Nelze registrovat OLE propojení."
IDS_NOTOLEMODCAPTION "Pøidat propojení"
}

View file

@ -0,0 +1,55 @@
/*
* Copyright 2004 Henning Gerhardt
*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
LANGUAGE LANG_GERMAN, SUBLANG_DEFAULT
UIINSERTOBJECT DIALOG DISCARDABLE 0, 0, 294, 151
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Objekt einfügen"
FONT 8, "MS Shell Dlg"
BEGIN
LISTBOX IDC_OBJTYPELIST,82,19,131,66,LBS_SORT |
LBS_NOINTEGRALHEIGHT | WS_VISIBLE | WS_VSCROLL |
WS_TABSTOP
LTEXT "Objekttyp:",IDC_OBJTYPELBL,82,7,53,8,WS_VISIBLE
DEFPUSHBUTTON "OK",IDOK,221,7,66,14
PUSHBUTTON "Abbrechen",IDCANCEL,221,24,66,14
GROUPBOX "Ergebnis",IDC_RESULT,7,103,208,41
CONTROL "&Neu erstellen",IDC_CREATENEW,"Button",BS_AUTORADIOBUTTON |
WS_GROUP,7,20,62,10
CONTROL "S&teuerung erstellen",IDC_CREATECONTROL,"Button",
BS_AUTORADIOBUTTON | NOT WS_VISIBLE,7,54,62,10
CONTROL "A&us Datei erstellen",IDC_CREATEFROMFILE,"Button",
BS_AUTORADIOBUTTON,7,37,67,10
LTEXT "",IDC_RESULTDESC,49,112,159,23
PUSHBUTTON "Steuerung hin&zufügen",IDC_ADDCONTROL,81,88,63,14,NOT WS_VISIBLE
CONTROL "Als &Symbol anzeigen",IDC_ASICON,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP | NOT WS_VISIBLE,223,58,64,10
PUSHBUTTON "D&urchsuchen...",IDC_BROWSE,83,53,50,14,NOT WS_VISIBLE
LTEXT "Datei:",IDC_FILELBL,83,27,20,8, NOT WS_VISIBLE
EDITTEXT IDC_FILE,83,37,132,13,ES_AUTOHSCROLL | NOT WS_VISIBLE
END
STRINGTABLE DISCARDABLE
{
IDS_RESULTOBJDESC "Fügt ein neues %s - Objekt in Ihr Dokument ein."
IDS_RESULTFILEOBJDESC "Fügt den Inhalt der Datei als Objekt so in Ihr Dokument ein, dass Sie es mit dem Programm aktivieren können, mit dem es erstellt wurde."
IDS_BROWSE "Durchsuchen"
IDS_NOTOLEMOD "Die Datei ist offenbar kein gültiges OLE - Steuermodul. Die OLE - Steuerung konnte nicht registiert werden."
IDS_NOTOLEMODCAPTION "Steuerung hinzufügen"
}

View file

@ -0,0 +1,55 @@
/*
* Copyright 2003 Ulrich Czekalla for CodeWeavers
*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
UIINSERTOBJECT DIALOG DISCARDABLE 0, 0, 294, 151
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Insert Object"
FONT 8, "MS Shell Dlg"
BEGIN
LISTBOX IDC_OBJTYPELIST,82,19,131,66,LBS_SORT |
LBS_NOINTEGRALHEIGHT | WS_VISIBLE | WS_VSCROLL |
WS_TABSTOP
LTEXT "Object Type:",IDC_OBJTYPELBL,82,7,53,8,WS_VISIBLE
DEFPUSHBUTTON "OK",IDOK,221,7,66,14
PUSHBUTTON "Cancel",IDCANCEL,221,24,66,14
GROUPBOX "Result",IDC_RESULT,7,103,208,41
CONTROL "Create New",IDC_CREATENEW,"Button",BS_AUTORADIOBUTTON |
WS_GROUP,7,20,62,10
CONTROL "Create Control",IDC_CREATECONTROL,"Button",
BS_AUTORADIOBUTTON | NOT WS_VISIBLE,7,54,62,10
CONTROL "Create From File",IDC_CREATEFROMFILE,"Button",
BS_AUTORADIOBUTTON,7,37,67,10
LTEXT "",IDC_RESULTDESC,49,112,159,23
PUSHBUTTON "&Add Control...",IDC_ADDCONTROL,81,88,63,14,NOT WS_VISIBLE
CONTROL "Display As Icon",IDC_ASICON,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP | NOT WS_VISIBLE,223,58,64,10
PUSHBUTTON "Browse...",IDC_BROWSE,83,53,50,14,NOT WS_VISIBLE
LTEXT "File:",IDC_FILELBL,83,27,20,8, NOT WS_VISIBLE
EDITTEXT IDC_FILE,83,37,132,13,ES_AUTOHSCROLL | NOT WS_VISIBLE
END
STRINGTABLE DISCARDABLE
{
IDS_RESULTOBJDESC "Insert a new %s object into your document"
IDS_RESULTFILEOBJDESC "Insert the contents of the file as an object into your document so that you may activate it using the program which created it."
IDS_BROWSE "Browse"
IDS_NOTOLEMOD "File does not appear to be a valid OLE module. Unable to register OLE control."
IDS_NOTOLEMODCAPTION "Add Control"
}

View file

@ -0,0 +1,55 @@
/*
* Copyright 2004 José Manuel Ferrer Ortiz
*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
LANGUAGE LANG_SPANISH, SUBLANG_DEFAULT
UIINSERTOBJECT DIALOG DISCARDABLE 0, 0, 294, 151
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Insertar objeto"
FONT 8, "MS Shell Dlg"
BEGIN
LISTBOX IDC_OBJTYPELIST,82,19,131,66,LBS_SORT |
LBS_NOINTEGRALHEIGHT | WS_VISIBLE | WS_VSCROLL |
WS_TABSTOP
LTEXT "Tipo de objeto:",IDC_OBJTYPELBL,82,7,53,8,WS_VISIBLE
DEFPUSHBUTTON "Aceptar",IDOK,221,7,66,14
PUSHBUTTON "Cancelar",IDCANCEL,221,24,66,14
GROUPBOX "Resultado",IDC_RESULT,7,103,208,41
CONTROL "Crear nuevo",IDC_CREATENEW,"Button",BS_AUTORADIOBUTTON |
WS_GROUP,7,20,62,10
CONTROL "Crear control",IDC_CREATECONTROL,"Button",
BS_AUTORADIOBUTTON | NOT WS_VISIBLE,7,54,62,10
CONTROL "Crear desde archivo",IDC_CREATEFROMFILE,"Button",
BS_AUTORADIOBUTTON,7,37,67,10
LTEXT "",IDC_RESULTDESC,49,112,159,23
PUSHBUTTON "&Añadir control...",IDC_ADDCONTROL,81,88,63,14,NOT WS_VISIBLE
CONTROL "Mostrar como icono",IDC_ASICON,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP | NOT WS_VISIBLE,223,58,64,10
PUSHBUTTON "Explorar...",IDC_BROWSE,83,53,50,14,NOT WS_VISIBLE
LTEXT "Archivo:",IDC_FILELBL,83,27,20,8, NOT WS_VISIBLE
EDITTEXT IDC_FILE,83,37,132,13,ES_AUTOHSCROLL | NOT WS_VISIBLE
END
STRINGTABLE DISCARDABLE
{
IDS_RESULTOBJDESC "Inserta un nuevo objeto %s en su documento"
IDS_RESULTFILEOBJDESC "Inserta el contenido del archivo como un objeto en su documento, con lo que podrá activarlo utilizando el programa que lo creó."
IDS_BROWSE "Explorar"
IDS_NOTOLEMOD "El archivo no parece ser un módulo OLE válido. Incapaz de registrar el control OLE."
IDS_NOTOLEMODCAPTION "Añadir control"
}

View file

@ -0,0 +1,56 @@
/*
* Copyright 2003 Ulrich Czekalla for CodeWeavers
* Copyright 2003 Ivan Leo Puoti
*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
LANGUAGE LANG_ITALIAN, SUBLANG_DEFAULT
UIINSERTOBJECT DIALOG DISCARDABLE 0, 0, 294, 151
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Insersci oggetto"
FONT 8, "MS Shell Dlg"
BEGIN
LISTBOX IDC_OBJTYPELIST,82,19,131,66,LBS_SORT |
LBS_NOINTEGRALHEIGHT | WS_VISIBLE | WS_VSCROLL |
WS_TABSTOP
LTEXT "Tipo di oggetto:",IDC_OBJTYPELBL,82,7,53,8,WS_VISIBLE
DEFPUSHBUTTON "OK",IDOK,221,7,66,14
PUSHBUTTON "Annulla",IDCANCEL,221,24,66,14
GROUPBOX "Risultato",IDC_RESULT,7,103,208,41
CONTROL "Crea Nuovo",IDC_CREATENEW,"Button",BS_AUTORADIOBUTTON |
WS_GROUP,7,20,62,10
CONTROL "Crea Controllo",IDC_CREATECONTROL,"Tasto",
BS_AUTORADIOBUTTON | NOT WS_VISIBLE,7,54,62,10
CONTROL "Crea da File",IDC_CREATEFROMFILE,"Tasto",
BS_AUTORADIOBUTTON,7,37,67,10
LTEXT "",IDC_RESULTDESC,49,112,159,23
PUSHBUTTON "&Aggiungi Controllo...",IDC_ADDCONTROL,81,88,63,14,NOT WS_VISIBLE
CONTROL "Visualizza come Icona",IDC_ASICON,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP | NOT WS_VISIBLE,223,58,64,10
PUSHBUTTON "Esplora...",IDC_BROWSE,83,53,50,14,NOT WS_VISIBLE
LTEXT "File:",IDC_FILELBL,83,27,20,8, NOT WS_VISIBLE
EDITTEXT IDC_FILE,83,37,132,13,ES_AUTOHSCROLL | NOT WS_VISIBLE
END
STRINGTABLE DISCARDABLE
{
IDS_RESULTOBJDESC "Inserisci un nuovo oggetto %s nel documento"
IDS_RESULTFILEOBJDESC "Inserisci i contenuti del file come un oggetto nel documento in modo da poterlo attivare usando il programma che lo ha creato."
IDS_BROWSE "Esplora"
IDS_NOTOLEMOD "Il file non sembra essere un module OLE valido. Impossibile registrare il controllo OLE."
IDS_NOTOLEMODCAPTION "Aggiungi Controllo"
}

View file

@ -0,0 +1,55 @@
/*
* Copyright 2004 Hajime Segawa
*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
UIINSERTOBJECT DIALOG DISCARDABLE 0, 0, 294, 151
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "オブジェクトの挿入"
FONT 9, "MS UI Gothic"
BEGIN
LISTBOX IDC_OBJTYPELIST,82,19,131,66,LBS_SORT |
LBS_NOINTEGRALHEIGHT | WS_VISIBLE | WS_VSCROLL |
WS_TABSTOP
LTEXT "オブジェクトの種類:",IDC_OBJTYPELBL,82,7,53,8,WS_VISIBLE
DEFPUSHBUTTON "OK",IDOK,221,7,66,14
PUSHBUTTON "キャンセル",IDCANCEL,221,24,66,14
GROUPBOX "結果",IDC_RESULT,7,103,208,41
CONTROL "新規作成",IDC_CREATENEW,"Button",BS_AUTORADIOBUTTON |
WS_GROUP,7,20,62,10
CONTROL "コントロールを作成",IDC_CREATECONTROL,"Button",
BS_AUTORADIOBUTTON | NOT WS_VISIBLE,7,54,62,10
CONTROL "ファイルから作成",IDC_CREATEFROMFILE,"Button",
BS_AUTORADIOBUTTON,7,37,67,10
LTEXT "",IDC_RESULTDESC,49,112,159,23
PUSHBUTTON "コントロールを追加(&A)...",IDC_ADDCONTROL,81,88,63,14,NOT WS_VISIBLE
CONTROL "アイコンとして表示",IDC_ASICON,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP | NOT WS_VISIBLE,223,58,64,10
PUSHBUTTON "参照...",IDC_BROWSE,83,53,50,14,NOT WS_VISIBLE
LTEXT "ファイル:",IDC_FILELBL,83,27,20,8, NOT WS_VISIBLE
EDITTEXT IDC_FILE,83,37,132,13,ES_AUTOHSCROLL | NOT WS_VISIBLE
END
STRINGTABLE DISCARDABLE
{
IDS_RESULTOBJDESC "ドキュメントに新しい %s オブジェクトを挿入します"
IDS_RESULTFILEOBJDESC "ファイルの内容をオブジェクトとしてドキュメントに挿入します。オブジェクトは作成したプログラムから有効にできます。"
IDS_BROWSE "参照"
IDS_NOTOLEMOD "ファイルは有効なOLEモジュールではないようです。OLEコントロールを登録できません。"
IDS_NOTOLEMODCAPTION "コントロールを追加"
}

View file

@ -0,0 +1,56 @@
/*
* Copyright 2003 Ulrich Czekalla for CodeWeavers
* Copyright 2003 Hans Leidekker
*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
LANGUAGE LANG_DUTCH, SUBLANG_DEFAULT
UIINSERTOBJECT DIALOG DISCARDABLE 0, 0, 294, 151
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Object invoegen"
FONT 8, "MS Shell Dlg"
BEGIN
LISTBOX IDC_OBJTYPELIST,82,19,131,66,LBS_SORT |
LBS_NOINTEGRALHEIGHT | WS_VISIBLE | WS_VSCROLL |
WS_TABSTOP
LTEXT "Objecttype:",IDC_OBJTYPELBL,82,7,53,8,WS_VISIBLE
DEFPUSHBUTTON "OK",IDOK,221,7,66,14
PUSHBUTTON "Annuleren",IDCANCEL,221,24,66,14
GROUPBOX "Resultaat",IDC_RESULT,7,103,208,41
CONTROL "Nieuw",IDC_CREATENEW,"Button",BS_AUTORADIOBUTTON |
WS_GROUP,7,20,62,10
CONTROL "Creëren",IDC_CREATECONTROL,"Button",
BS_AUTORADIOBUTTON | NOT WS_VISIBLE,7,54,62,10
CONTROL "Bestand gebruiken",IDC_CREATEFROMFILE,"Button",
BS_AUTORADIOBUTTON,7,37,67,10
LTEXT "",IDC_RESULTDESC,49,112,159,23
PUSHBUTTON "Toevoegen...",IDC_ADDCONTROL,81,88,63,14,NOT WS_VISIBLE
CONTROL "Als pictogram weergeven",IDC_ASICON,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP | NOT WS_VISIBLE,223,58,64,10
PUSHBUTTON "Bladeren...",IDC_BROWSE,83,53,50,14,NOT WS_VISIBLE
LTEXT "Bestandsnaam:",IDC_FILELBL,83,27,20,8, NOT WS_VISIBLE
EDITTEXT IDC_FILE,83,37,132,13,ES_AUTOHSCROLL | NOT WS_VISIBLE
END
STRINGTABLE DISCARDABLE
{
IDS_RESULTOBJDESC "Voeg een nieuw %s object in uw document"
IDS_RESULTFILEOBJDESC "Voeg de inhoud van het bestand als object in uw document zodat u het later kunt bewerken met het programma waarmee u het heeft gemaakt."
IDS_BROWSE "Bladeren"
IDS_NOTOLEMOD "Het bestand is geen geldig OLE bestand. Registratie is mislukt."
IDS_NOTOLEMODCAPTION "Toevoegen"
}

View file

@ -0,0 +1,55 @@
/*
* Copyright 2004 Marcelo Duarte
*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
LANGUAGE LANG_PORTUGUESE, SUBLANG_DEFAULT
UIINSERTOBJECT DIALOG DISCARDABLE 0, 0, 294, 151
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Inserir objeto"
FONT 8, "MS Shell Dlg"
BEGIN
LISTBOX IDC_OBJTYPELIST,82,19,131,66,LBS_SORT |
LBS_NOINTEGRALHEIGHT | WS_VISIBLE | WS_VSCROLL |
WS_TABSTOP
LTEXT "Tipo de objeto:",IDC_OBJTYPELBL,82,7,53,8,WS_VISIBLE
DEFPUSHBUTTON "OK",IDOK,221,7,66,14
PUSHBUTTON "Cancelar",IDCANCEL,221,24,66,14
GROUPBOX "Resultado",IDC_RESULT,7,103,208,41
CONTROL "Criar novo",IDC_CREATENEW,"Button",BS_AUTORADIOBUTTON |
WS_GROUP,7,20,62,10
CONTROL "Criar controle",IDC_CREATECONTROL,"Button",
BS_AUTORADIOBUTTON | NOT WS_VISIBLE,7,54,62,10
CONTROL "Criar do arquivo",IDC_CREATEFROMFILE,"Button",
BS_AUTORADIOBUTTON,7,37,67,10
LTEXT "",IDC_RESULTDESC,49,112,159,23
PUSHBUTTON "&Adicionar Controle...",IDC_ADDCONTROL,81,88,63,14,NOT WS_VISIBLE
CONTROL "Mostrar como ícone",IDC_ASICON,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP | NOT WS_VISIBLE,223,58,64,10
PUSHBUTTON "Procurar...",IDC_BROWSE,83,53,50,14,NOT WS_VISIBLE
LTEXT "Arquivo:",IDC_FILELBL,83,27,20,8, NOT WS_VISIBLE
EDITTEXT IDC_FILE,83,37,132,13,ES_AUTOHSCROLL | NOT WS_VISIBLE
END
STRINGTABLE DISCARDABLE
{
IDS_RESULTOBJDESC "Inserir um novo objeto %s no documento"
IDS_RESULTFILEOBJDESC "Inserir o conteúdo do arquivo como um objeto no documento de modo que possa ativá-lo usando o programa que o criou."
IDS_BROWSE "Procurar"
IDS_NOTOLEMOD "O arquivo não parece ser um módulo OLE válido. Impossível registrar o controle OLE."
IDS_NOTOLEMODCAPTION "Adicionar Controle"
}

View file

@ -0,0 +1,309 @@
/*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#define COM_NO_WINDOWS_H
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "winerror.h"
#include "wingdi.h"
#include "winuser.h"
#include "oledlg.h"
#include "wine/debug.h"
#include "ole2.h"
WINE_DEFAULT_DEBUG_CHANNEL(ole);
HINSTANCE OLEDLG_hInstance = 0;
/***********************************************************************
* DllMain
*/
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID fImpLoad)
{
TRACE("%p 0x%lx %p\n", hinstDLL, fdwReason, fImpLoad);
switch(fdwReason) {
case DLL_PROCESS_ATTACH:
DisableThreadLibraryCalls(hinstDLL);
OLEDLG_hInstance = hinstDLL;
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;
}
/***********************************************************************
* OleUIPasteSpecialA (OLEDLG.4)
*/
UINT WINAPI OleUIPasteSpecialA(LPOLEUIPASTESPECIALA lpOleUIPasteSpecial)
{
FIXME("(%p): stub\n", lpOleUIPasteSpecial);
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return OLEUI_FALSE;
}
/***********************************************************************
* OleUIPasteSpecialW (OLEDLG.22)
*/
UINT WINAPI OleUIPasteSpecialW(LPOLEUIPASTESPECIALW lpOleUIPasteSpecial)
{
FIXME("(%p): stub\n", lpOleUIPasteSpecial);
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 __cdecl OleUIPromptUserA(
INT nTemplate, HWND hwndParent, ...)
{
FIXME("(%d, %p, ...): stub\n", nTemplate, hwndParent);
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return OLEUI_FALSE;
}
/***********************************************************************
* OleUIPromptUserW (OLEDLG.13)
*/
INT __cdecl 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;
}

View file

@ -0,0 +1,40 @@
/*
* Definitions for OLE dialog resources
*
* Copyright 2003 Ulrich Czekalla for CodeWeavers
*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#define IDS_RESULTOBJDESC 101
#define IDS_RESULTFILEOBJDESC 102
#define IDS_BROWSE 103
#define IDS_NOTOLEMOD 104
#define IDS_NOTOLEMODCAPTION 105
#define UIINSERTOBJECT 129
#define IDC_OBJTYPELIST 1000
#define IDC_RESULT 1001
#define IDC_CREATENEW 1002
#define IDC_CREATECONTROL 1003
#define IDC_CREATEFROMFILE 1004
#define IDC_OBJTYPELBL 1005
#define IDC_RESULTDESC 1006
#define IDC_ADDCONTROL 1007
#define IDC_ASICON 1008
#define IDC_BROWSE 1009
#define IDC_FILELBL 1010
#define IDC_FILE 1011

View file

@ -0,0 +1,41 @@
/*
* Top level resource file for OLE Dialogs
*
* Copyright 2003 Ulrich Czekalla for CodeWeavers
*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
#include "winnls.h"
#include "resource.h"
/*
* Everything specific to any language goes
* in one of the specific files.
* Note that you can and may override resources
* which also have a neutral version. This is to
* get localized bitmaps for example.
*/
#include "oledlg_Cs.rc"
#include "oledlg_De.rc"
#include "oledlg_En.rc"
#include "oledlg_Es.rc"
#include "oledlg_It.rc"
#include "oledlg_Ja.rc"
#include "oledlg_Nl.rc"
#include "oledlg_Pt.rc"