*/
static BOOL UIINSERTOBJECTDLG_PopulateObjectTypes(InsertObjectDlgInfo* pdlgInfo)
{
+ static const WCHAR szClsid[] = {'C','L','S','I','D',0};
+ static const WCHAR szInsertable[] = {'I','n','s','e','r','t','a','b','l','e',0};
+ static const WCHAR szNotInsertable[] = {'N','o','t','I','n','s','e','r','t','a','b','l','e',0};
DWORD i;
LONG len;
HKEY hkclsids;
HKEY hkey;
CLSID clsid;
HRESULT ret;
- CHAR szclsid[128];
- CHAR keydesc[MAX_PATH];
- CHAR keyname[MAX_PATH];
- WCHAR wszclsid[128];
+ WCHAR keydesc[MAX_PATH];
+ WCHAR keyname[MAX_PATH];
+ WCHAR szclsid[128];
DWORD index = 0;
UIINSERTOBJECTDLG_FreeObjectTypes(pdlgInfo);
- RegOpenKeyExA(HKEY_CLASSES_ROOT, "CLSID", 0, KEY_READ, &hkclsids);
+ RegOpenKeyExW(HKEY_CLASSES_ROOT, szClsid, 0, KEY_READ, &hkclsids);
- while (ERROR_SUCCESS == (ret = RegEnumKeyA(hkclsids, index, szclsid, MAX_PATH)))
+ while (ERROR_SUCCESS == (ret = RegEnumKeyW(hkclsids, index, szclsid, sizeof(szclsid)/sizeof(szclsid[0]))))
{
index++;
- RegOpenKeyExA(hkclsids, szclsid, 0, KEY_READ, &hkey);
+ RegOpenKeyExW(hkclsids, szclsid, 0, KEY_READ, &hkey);
- len = MAX_PATH;
- if (ERROR_SUCCESS != RegQueryValueA(hkey, "Insertable", keyname, &len))
+ len = sizeof(keyname);
+ if (ERROR_SUCCESS != RegQueryValueW(hkey, szInsertable, keyname, &len))
continue;
- len = MAX_PATH;
- if (ERROR_SUCCESS == RegQueryValueA(hkey, "NotInsertable", keyname, &len))
+ len = sizeof(keyname);
+ if (ERROR_SUCCESS == RegQueryValueW(hkey, szNotInsertable, keyname, &len))
continue;
- RtlMultiByteToUnicodeN(wszclsid, MAX_PATH, NULL, szclsid, MAX_PATH);
- CLSIDFromString(wszclsid, &clsid);
+ CLSIDFromString(szclsid, &clsid);
for (i = 0; i < pdlgInfo->lpOleUIInsertObject->cClsidExclude; i++)
if (IsEqualGUID(&pdlgInfo->lpOleUIInsertObject->lpClsidExclude[i], &clsid))
if (i < pdlgInfo->lpOleUIInsertObject->cClsidExclude)
continue;
- len = MAX_PATH;
- if (ERROR_SUCCESS == RegQueryValueA(hkey, NULL, keydesc, &len))
+ len = sizeof(keydesc);
+ if (ERROR_SUCCESS == RegQueryValueW(hkey, NULL, keydesc, &len))
{
CLSID* lpclsid = 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);
+ len = SendMessageW(pdlgInfo->hwndObjTypeLB, LB_ADDSTRING, 0, (LPARAM)keydesc);
+ SendMessageW(pdlgInfo->hwndObjTypeLB, LB_SETITEMDATA, (WPARAM)len, (LPARAM)lpclsid);
}
}
}
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);
- lstrcpynA(pdlgInfo->lpOleUIInsertObject->lpszFile, fname, pdlgInfo->lpOleUIInsertObject->cchFile);
+ if (SendMessageW(pdlgInfo->hwndFileTB, WM_GETTEXT, MAX_PATH, (LPARAM)wcsFile))
+ WideCharToMultiByte(CP_ACP, 0, wcsFile, -1,
+ pdlgInfo->lpOleUIInsertObject->lpszFile, pdlgInfo->lpOleUIInsertObject->cchFile, NULL, NULL);
- RtlMultiByteToUnicodeN(wcsFile, MAX_PATH, NULL, fname, MAX_PATH);
if (ERROR_SUCCESS == (hres = GetClassFile(wcsFile, &pdlgInfo->lpOleUIInsertObject->clsid)))
{
if (pdlgInfo->lpOleUIInsertObject->dwFlags & IOF_CREATEFILEOBJECT)
--- /dev/null
+/*
+ * Copyright 2007 Vitaly Lipatov for Etersoft
+ *
+ * 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
+ */
+
+LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
+
+UIINSERTOBJECT DIALOG DISCARDABLE 0, 0, 294, 151
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Âñòàâèòü îáúåêò"
+FONT 8, "MS Shell Dlg"
+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 "&Äîáàâèòü ýëåìåíò óïðàâëåíèÿ...",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 "Âûáðàòü...",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 "Äîáàâèòü ýëåìåíò óïðàâëåíèÿ"
+}
+
+IDD_PASTESPECIAL4 DIALOG DISCARDABLE 3, 15, 293, 140
+STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Ñïåöèàëüíàÿ âñòàâêà"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ LTEXT "Èñòî÷íèê:", -1, 6, 9, 30, 8, WS_VISIBLE | WS_GROUP
+ CONTROL "&Âñòàâèòü", IDC_PS_PASTE, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_GROUP | WS_VISIBLE,
+ 6, 38, 55, 10
+ CONTROL "Âñòàâèòü &Ññûëêó", IDC_PS_PASTELINK, "Button", BS_AUTORADIOBUTTON | WS_VISIBLE,
+ 6, 63, 55, 10
+ LTEXT "&Êàê:", -1, 65, 25, 16, 8, WS_VISIBLE | WS_GROUP
+ LISTBOX IDC_PS_PASTELIST, 65, 36, 153, 57, LBS_NOTIFY | LBS_USETABSTOPS | WS_VSCROLL | WS_BORDER | NOT WS_VISIBLE
+ LISTBOX IDC_PS_PASTELINKLIST, 65, 36, 153, 57, LBS_NOTIFY | LBS_USETABSTOPS | WS_VSCROLL | WS_BORDER | NOT WS_VISIBLE
+ LISTBOX IDC_PS_DISPLAYLIST, 65, 36, 153, 57, LBS_NOTIFY | LBS_USETABSTOPS | WS_VSCROLL | WS_BORDER | WS_VISIBLE
+ CONTROL "OK", IDOK, "Button", BS_DEFPUSHBUTTON | WS_TABSTOP | WS_GROUP | WS_VISIBLE, 224, 6, 66, 14
+ CONTROL "Îòìåíà", IDCANCEL, "Button", BS_PUSHBUTTON | WS_TABSTOP | WS_VISIBLE, 224, 23, 66, 14
+ CONTROL "Ñ&ïðàâêà", IDC_OLEUIHELP, "Button", BS_PUSHBUTTON | WS_TABSTOP | WS_VISIBLE, 224, 42, 66, 14
+ CONTROL "&Ïîêàçûâàòü êàê çíà÷îê", IDC_PS_DISPLAYASICON, "Button", BS_AUTOCHECKBOX | WS_TABSTOP | WS_VISIBLE, 224, 59, 66, 14
+ CONTROL "", IDC_PS_ICONDISPLAY, "Static", SS_ICON | WS_VISIBLE, 224, 75, 66, 44
+ CONTROL "Èçìåíèòü &çíà÷îê...", IDC_PS_CHANGEICON, "Button", BS_PUSHBUTTON | WS_TABSTOP | WS_VISIBLE, 224, 123, 66, 14
+ CONTROL "", IDC_PS_RESULTIMAGE, "Static", SS_ICON | WS_VISIBLE, 8, 101, 42, 34
+ CONTROL "<< result text goes here >>", IDC_PS_RESULTTEXT, "Static", SS_NOPREFIX | WS_VISIBLE, 54, 100, 159, 35
+ CONTROL "Ðåçóëüòàò", -1, "Button", BS_GROUPBOX | WS_GROUP | WS_VISIBLE, 6, 90, 212, 48
+ CONTROL "", IDC_PS_SOURCETEXT, "Edit", ES_READONLY | ES_AUTOHSCROLL | WS_VISIBLE, 37, 9, 180, 8
+END
+
+STRINGTABLE DISCARDABLE
+{
+ IDS_PS_PASTE_DATA "Âñòàâêà ñîäåðæèìîãî áóôåðà îáìåíà â äîêóìåíò êàê %s."
+ IDS_PS_PASTE_OBJECT "Âñòàâêà ñîäåðæèìîãî áóôåðà îáìåíà â äîêóìåíò òàê, ÷òî åãî ìîæíî àêòèâèðîâàòü, èñïîëüçóÿ %s."
+ IDS_PS_PASTE_OBJECT_AS_ICON "Âñòàâêà ñîäåðæèìîãî áóôåðà îáìåíà â äîêóìåíò òàê, ÷òî åãî ìîæíî àêòèâèðîâàòü, èñïîëüçóÿ %s. Îí áóäåò îòîáðàæàòüñÿ â âèäå çíà÷êà."
+ IDS_PS_PASTE_LINK_DATA "Âñòàâêà ñîäåðæèìîãî áóôåðà îáìåíà â äîêóìåíò êàê %s. Äàííûå áóäóò ñâÿçàíû ñ èñõîäíûì ôàéëîì, òàê ÷òî èçìåíåíèÿ â í¸ì áóäóò îòðàæàòüñÿ â äîêóìåíòå."
+ IDS_PS_PASTE_LINK_OBJECT "Âñòàâêà èçîáðàæåíèÿ èç áóôåðà îáìåíà â äîêóìåíò. Èçáðàæåíèå áóäåò ñâÿçàíî ñ èñõîäíûì ôàéëîì, òàê ÷òî èçìåíåíèÿ â í¸ì áóäóò îòðàæàòüñÿ â äîêóìåíòå."
+ IDS_PS_PASTE_LINK_OBJECT_AS_ICON "Âñòàâêà ññûëêè, êîòîðàÿ áóäåò óêàçûâàòü íà ðàñïîëîæåíèå ñîäåðæèìîãî áóôåðà îáìåíà. Ññûëêà áóäåò ñâÿçàíà ñ èñõîäíûì ôàéëîì, òàê ÷òî èçìåíåíèÿ â í¸ì áóäóò îòðàæàòüñÿ â äîêóìåíòå."
+ IDS_PS_NON_OLE "Âñòàâêà ñîäåðæèìîå áóôåðà îáìåíà â äîêóìåíò."
+ IDS_PS_UNKNOWN_TYPE "Íåèçâåñòíûé òèï"
+ IDS_PS_UNKNOWN_SRC "Íåèçâåñòíûé èñòî÷íèê"
+ IDS_PS_UNKNOWN_APP "ïðîãðàììà, êîòîðàÿ åãî ñîçäàëà"
+}