From c3c8cf879c7b7c9a0cb6611bf2bf82505aa86b13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Sat, 13 Feb 2016 23:16:19 +0000 Subject: [PATCH] [CLIPBRD] - Add clipboard file icon by Jared Smudde. - Open any clipboard data file given in the command line. [BOOTDATA] - Add registry entries for file extension .clp. CORE-10853 #resolve #comment Support added in revision 70736. svn path=/trunk/; revision=70736 --- .../base/applications/clipbrd/CMakeLists.txt | 2 +- reactos/base/applications/clipbrd/clipbrd.c | 99 +++++++++--------- reactos/base/applications/clipbrd/clipbrd.rc | 3 +- .../base/applications/clipbrd/lang/de-DE.rc | 1 + .../base/applications/clipbrd/lang/en-US.rc | 1 + .../base/applications/clipbrd/lang/es-ES.rc | 1 + .../base/applications/clipbrd/lang/fr-FR.rc | 3 +- .../base/applications/clipbrd/lang/ro-RO.rc | 1 + .../base/applications/clipbrd/lang/tr-TR.rc | 1 + .../base/applications/clipbrd/lang/zh-CN.rc | 1 + .../base/applications/clipbrd/lang/zh-TW.rc | 1 + .../base/applications/clipbrd/res/clpfile.ico | Bin 0 -> 25214 bytes reactos/base/applications/clipbrd/resources.h | 50 ++++----- reactos/boot/bootdata/hivecls.inf | 7 ++ 14 files changed, 93 insertions(+), 78 deletions(-) create mode 100644 reactos/base/applications/clipbrd/res/clpfile.ico diff --git a/reactos/base/applications/clipbrd/CMakeLists.txt b/reactos/base/applications/clipbrd/CMakeLists.txt index 8c88d79db6a..264037f9815 100644 --- a/reactos/base/applications/clipbrd/CMakeLists.txt +++ b/reactos/base/applications/clipbrd/CMakeLists.txt @@ -2,9 +2,9 @@ list(APPEND SOURCE clipbrd.c cliputils.c - winutils.c fileutils.c scrollutils.c + winutils.c precomp.h) add_executable(clipbrd ${SOURCE} clipbrd.rc) diff --git a/reactos/base/applications/clipbrd/clipbrd.c b/reactos/base/applications/clipbrd/clipbrd.c index 42e5be3adfe..cd18944066c 100644 --- a/reactos/base/applications/clipbrd/clipbrd.c +++ b/reactos/base/applications/clipbrd/clipbrd.c @@ -63,6 +63,23 @@ static void SaveClipboardToFile(void) CloseClipboard(); } +static void LoadClipboardDataFromFile(LPWSTR lpszFileName) +{ + if (!OpenClipboard(Globals.hMainWnd)) + { + ShowLastWin32Error(Globals.hMainWnd); + return; + } + + if (MessageBoxRes(Globals.hMainWnd, Globals.hInstance, STRING_DELETE_MSG, STRING_DELETE_TITLE, MB_ICONWARNING | MB_YESNO) == IDYES) + { + EmptyClipboard(); + ReadClipboardFile(lpszFileName); + } + + CloseClipboard(); +} + static void LoadClipboardFromFile(void) { OPENFILENAMEW ofn; @@ -87,19 +104,7 @@ static void LoadClipboardFromFile(void) if (!GetOpenFileNameW(&ofn)) return; - if (!OpenClipboard(Globals.hMainWnd)) - { - ShowLastWin32Error(Globals.hMainWnd); - return; - } - - if (MessageBoxRes(Globals.hMainWnd, Globals.hInstance, STRING_DELETE_MSG, STRING_DELETE_TITLE, MB_ICONWARNING | MB_YESNO) == IDYES) - { - EmptyClipboard(); - ReadClipboardFile(szFileName); - } - - CloseClipboard(); + LoadClipboardDataFromFile(szFileName); } static void LoadClipboardFromDrop(HDROP hDrop) @@ -109,19 +114,7 @@ static void LoadClipboardFromDrop(HDROP hDrop) DragQueryFileW(hDrop, 0, szFileName, ARRAYSIZE(szFileName)); DragFinish(hDrop); - if (!OpenClipboard(Globals.hMainWnd)) - { - ShowLastWin32Error(Globals.hMainWnd); - return; - } - - if (MessageBoxRes(Globals.hMainWnd, Globals.hInstance, STRING_DELETE_MSG, STRING_DELETE_TITLE, MB_ICONWARNING | MB_YESNO) == IDYES) - { - EmptyClipboard(); - ReadClipboardFile(szFileName); - } - - CloseClipboard(); + LoadClipboardDataFromFile(szFileName); } static void SetDisplayFormat(UINT uFormat) @@ -169,7 +162,7 @@ static void InitMenuPopup(HMENU hMenu, LPARAM index) DrawMenuBar(Globals.hMainWnd); } -void UpdateDisplayMenu(void) +static void UpdateDisplayMenu(void) { UINT uFormat; WCHAR szFormatName[MAX_FMT_NAME_LEN + 1]; @@ -258,7 +251,7 @@ static int ClipboardCommandHandler(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM l WCHAR szTitle[MAX_STRING_LEN]; HICON hIcon; - hIcon = LoadIconW(Globals.hInstance, MAKEINTRESOURCE(CLIP_ICON)); + hIcon = LoadIconW(Globals.hInstance, MAKEINTRESOURCE(CLIPBRD_ICON)); LoadStringW(Globals.hInstance, STRING_CLIPBOARD, szTitle, ARRAYSIZE(szTitle)); ShellAboutW(Globals.hMainWnd, szTitle, 0, hIcon); DeleteObject(hIcon); @@ -346,6 +339,28 @@ static LRESULT WINAPI MainWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lP { switch(uMsg) { + case WM_CREATE: + { + Globals.hMenu = GetMenu(hWnd); + Globals.hWndNext = SetClipboardViewer(hWnd); + UpdateDisplayMenu(); + SetDisplayFormat(0); + break; + } + + case WM_CLOSE: + { + DestroyWindow(hWnd); + break; + } + + case WM_DESTROY: + { + ChangeClipboardChain(hWnd, Globals.hWndNext); + PostQuitMessage(0); + break; + } + case WM_PAINT: { ClipboardPaintHandler(hWnd, uMsg, wParam, lParam); @@ -395,28 +410,6 @@ static LRESULT WINAPI MainWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lP break; } - case WM_CREATE: - { - Globals.hMenu = GetMenu(hWnd); - Globals.hWndNext = SetClipboardViewer(hWnd); - UpdateDisplayMenu(); - SetDisplayFormat(0); - break; - } - - case WM_CLOSE: - { - DestroyWindow(hWnd); - break; - } - - case WM_DESTROY: - { - ChangeClipboardChain(hWnd, Globals.hWndNext); - PostQuitMessage(0); - break; - } - case WM_CHANGECBCHAIN: { if ((HWND)wParam == Globals.hWndNext) @@ -534,7 +527,7 @@ int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLi wndclass.cbSize = sizeof(wndclass); wndclass.lpfnWndProc = MainWndProc; wndclass.hInstance = hInstance; - wndclass.hIcon = LoadIconW(hInstance, MAKEINTRESOURCEW(CLIP_ICON)); + wndclass.hIcon = LoadIconW(hInstance, MAKEINTRESOURCEW(CLIPBRD_ICON)); wndclass.hCursor = LoadCursorW(0, IDC_ARROW); wndclass.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); wndclass.lpszMenuName = MAKEINTRESOURCEW(MAIN_MENU); @@ -574,6 +567,10 @@ int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLi ShowLastWin32Error(Globals.hMainWnd); } + /* If the user provided a path to a clipboard data file, try to open it */ + if (lpCmdLine != NULL && *lpCmdLine) + LoadClipboardDataFromFile(lpCmdLine); + UpdateLinesToScroll(); while (GetMessageW(&msg, 0, 0, 0)) diff --git a/reactos/base/applications/clipbrd/clipbrd.rc b/reactos/base/applications/clipbrd/clipbrd.rc index f6a0a77a859..f6bfd2241e0 100644 --- a/reactos/base/applications/clipbrd/clipbrd.rc +++ b/reactos/base/applications/clipbrd/clipbrd.rc @@ -8,7 +8,8 @@ #define REACTOS_STR_ORIGINAL_FILENAME "clipbrd.exe" #include -CLIP_ICON ICON "res/clipbrd.ico" +CLIPBRD_ICON ICON "res/clipbrd.ico" +CLPFILE_ICON ICON "res/clpfile.ico" #include diff --git a/reactos/base/applications/clipbrd/lang/de-DE.rc b/reactos/base/applications/clipbrd/lang/de-DE.rc index 29d4c46d30c..63d4cddbbdd 100644 --- a/reactos/base/applications/clipbrd/lang/de-DE.rc +++ b/reactos/base/applications/clipbrd/lang/de-DE.rc @@ -33,6 +33,7 @@ END STRINGTABLE BEGIN STRING_CLIPBOARD "Zwischenablage" + STRING_CLIPFILE "Clipboard Element" STRING_DELETE_MSG "Soll der Inhalt der Zwischenablage gelöscht werden?" STRING_DELETE_TITLE "Zwischenablage löschen" STRING_FORMAT_NT "Zwischenablagedateien für ReactOS (*.clp)" diff --git a/reactos/base/applications/clipbrd/lang/en-US.rc b/reactos/base/applications/clipbrd/lang/en-US.rc index 1ad8fb57c46..14976fc57e4 100644 --- a/reactos/base/applications/clipbrd/lang/en-US.rc +++ b/reactos/base/applications/clipbrd/lang/en-US.rc @@ -33,6 +33,7 @@ END STRINGTABLE BEGIN STRING_CLIPBOARD "Clipboard" + STRING_CLIPFILE "Clipboard Element" STRING_DELETE_MSG "Clear contents of the Clipboard?" STRING_DELETE_TITLE "Clear Clipboard" STRING_FORMAT_NT "Clipboard files for ReactOS (*.clp)" diff --git a/reactos/base/applications/clipbrd/lang/es-ES.rc b/reactos/base/applications/clipbrd/lang/es-ES.rc index 2c90bed1ac3..95de8347d90 100644 --- a/reactos/base/applications/clipbrd/lang/es-ES.rc +++ b/reactos/base/applications/clipbrd/lang/es-ES.rc @@ -35,6 +35,7 @@ END STRINGTABLE BEGIN STRING_CLIPBOARD "Portapapeles" + STRING_CLIPFILE "Clipboard Element" STRING_DELETE_MSG "¿Borrar contenidos del Portapapeles?" STRING_DELETE_TITLE "Vaciar Portapapeles" STRING_FORMAT_NT "Archivos de Portapapeles de ReactOS (*.clp)" diff --git a/reactos/base/applications/clipbrd/lang/fr-FR.rc b/reactos/base/applications/clipbrd/lang/fr-FR.rc index 4ae69fb1bf8..272422b8543 100644 --- a/reactos/base/applications/clipbrd/lang/fr-FR.rc +++ b/reactos/base/applications/clipbrd/lang/fr-FR.rc @@ -18,7 +18,7 @@ BEGIN BEGIN MENUITEM "&Supprimer\tSuppr", CMD_DELETE END - POPUP "&Affichage" + POPUP "Affic&hage" BEGIN MENUITEM "&Automatique", CMD_AUTOMATIC END @@ -33,6 +33,7 @@ END STRINGTABLE BEGIN STRING_CLIPBOARD "Presse-papiers" + STRING_CLIPFILE "Élément du Presse-papiers" STRING_DELETE_MSG "Voulez-vous effacer le contenu du Presse-papiers ?" STRING_DELETE_TITLE "Effacer le Presse-papiers" STRING_FORMAT_NT "Fichiers du Presse-papiers ReactOS (*.clp)" diff --git a/reactos/base/applications/clipbrd/lang/ro-RO.rc b/reactos/base/applications/clipbrd/lang/ro-RO.rc index 080f7eee8fb..dfdc2273bc7 100644 --- a/reactos/base/applications/clipbrd/lang/ro-RO.rc +++ b/reactos/base/applications/clipbrd/lang/ro-RO.rc @@ -34,6 +34,7 @@ END STRINGTABLE BEGIN STRING_CLIPBOARD "Clipboard" + STRING_CLIPFILE "Clipboard Element" STRING_DELETE_MSG "Elimină conținutul din Clipboard?" STRING_DELETE_TITLE "Curăță Clipboard" STRING_FORMAT_NT "Fișiere clipboard pentru ReactOS (*.clp)" diff --git a/reactos/base/applications/clipbrd/lang/tr-TR.rc b/reactos/base/applications/clipbrd/lang/tr-TR.rc index 144ec391d15..192be1e5cdd 100644 --- a/reactos/base/applications/clipbrd/lang/tr-TR.rc +++ b/reactos/base/applications/clipbrd/lang/tr-TR.rc @@ -35,6 +35,7 @@ END STRINGTABLE BEGIN STRING_CLIPBOARD "Pano" + STRING_CLIPFILE "Clipboard Element" STRING_DELETE_MSG "Pano içeriğini sil?" STRING_DELETE_TITLE "Pano Sil" STRING_FORMAT_NT "ReactOS İçin Pano Kütükleri (*.clp)" diff --git a/reactos/base/applications/clipbrd/lang/zh-CN.rc b/reactos/base/applications/clipbrd/lang/zh-CN.rc index dbf70e8c491..88981380d69 100644 --- a/reactos/base/applications/clipbrd/lang/zh-CN.rc +++ b/reactos/base/applications/clipbrd/lang/zh-CN.rc @@ -35,6 +35,7 @@ END STRINGTABLE BEGIN STRING_CLIPBOARD "剪贴板" + STRING_CLIPFILE "Clipboard Element" STRING_DELETE_MSG "清除剪贴板的内容吗?" STRING_DELETE_TITLE "清除剪贴板" STRING_FORMAT_NT "ReactOS 的剪贴板文件 (*.clp)" diff --git a/reactos/base/applications/clipbrd/lang/zh-TW.rc b/reactos/base/applications/clipbrd/lang/zh-TW.rc index 2a266afdc1a..267dc722bd8 100644 --- a/reactos/base/applications/clipbrd/lang/zh-TW.rc +++ b/reactos/base/applications/clipbrd/lang/zh-TW.rc @@ -35,6 +35,7 @@ END STRINGTABLE BEGIN STRING_CLIPBOARD "剪貼簿" + STRING_CLIPFILE "Clipboard Element" STRING_DELETE_MSG "清除剪貼簿的內容嗎?" STRING_DELETE_TITLE "清除剪貼簿" STRING_FORMAT_NT "ReactOS 的剪貼簿檔案 (*.clp)" diff --git a/reactos/base/applications/clipbrd/res/clpfile.ico b/reactos/base/applications/clipbrd/res/clpfile.ico new file mode 100644 index 0000000000000000000000000000000000000000..057f6b130356f430ac7fc89b853badf9df0e4e16 GIT binary patch literal 25214 zcmeHP34ByV(ys(i&|PtIdN9k(BpJZ03Q=TN6bvGW5e3#DC;|xyM2LZbgn&Q@kdVpA z6(Af&2sao`K>;=43LY!E-+H^BpWhzdDBdV&fB)+D`puh3Cdq{C@%?@_RNlPTM^$xK zzwWB)dPG6gfx36U9M`s#b`jAEBC^@E`;UT&e#W!QFW2t71`&PGfl!`MzCCTdjOemU zxx9Ygp6I}pTwc3RYezKNp~~B6YYb6c7gZkjD3>u&K{Tz$V7?$@pkkdQCxClX7<2=T1FT$ z;-f~$^7hDqvOL!ai${iCw$n3t;J|^IsDj7YVf~TelRINPQ1xyo;aq{NXXFJx2JS5wT~WgIb^@}bbvMkFSipS`wi`LvkC>; zamapi4A(kGM}c;nw{!pWaCp&g&=ZpqX==Ye_;n<6`8YK$EGM#mG=A-=k=h_?2r|*W z9G9Ms$blX@F$OxncC>HqH}t0_55q9-=xJ`7|Divnyg3K(@JW<-j9)rE7+=r0fF`sr z@kr8v*RuHkPwUA9%AA4wf;nT$bJ9l`1t-|VHQvMVW=C;@)v@C z{fz#1q;$#7wxDP<{)JgsPGmp#7#<&H35(Z9Cf*We(dMHg1c~Lle}81g%UkZx;J7G9 z9A*^?#$&SJCd$UoWeTzcX_)c4@=pBNV)1^)ca1*xw1RgOzoz(IC9h|=Zf7ES?fA>J zrTuVL??>@7(OlWTwQaP1_P+8uV*}g<2xOh%<>rFcnz*QLam%_zg~s*xJwy$!$LWq_ zCsvfCWT!K79MMgh0Li~RF&uVxzT52{ksode55WuGo|TUqw>v+4s3l|=UI!NB^Mmkw zOUP8@+xZUvuSlF{!9={trRC?NMb3A`mMcC$P1vI%#Gpgii& z3m=*oK5S@LNnc!&#e&FREgkT;Iyr98gZ5!+Yg8~PxcNXtm?|o-`KTK+m zAAImZ8Z~MZ<&~6B>53Kf&_fSVVR<>ZmoKL=W5&?fq$Em8PNrE47m{o4T#C3Si>??l zogN&ML=_u0(3;JgX+>2PEn2gN7Oh=NivcS)ZluSyZly}VnoXNfCzB%Y%_Qf-)dx)HB|4ZwSXA_h;R z{E}iR3qM01Qc_cC-{Hel1v=L6*g@+Uwr{7$0hQaf(XOYTrg129_J<#+a8W5arc}`v zXUyqFd&T14|1%F1XSLuo1H0_LJWSEC<3{^S$XTTc@vOrS-pR#6#X zLRuO*Caj`m65b zNjgziN1vTOjpwV-&I#l_NA`zTQsj^sp< zMq8iQMw_>9p>-SA)8iY~QN`L-w6uH~l`JWv@>MG+zo>wsGPlt8znv~S-&+Jf<3zH$ZS73R~ltW3%)D4=gaQ{kdwdf|l^XwRNK zv(K>cSR)9D4}z*|7`3-T#_UJ2x*663oT{rnU~-tD5WzN0Z7 zSReia(^p^1^d+aSO@HN2&mV*GMfp}w>aG7&S9zOZ?cMv#m#V_jHy#)>{_{t^_+sY# z`SS})%9bo&_1NPZHtoS!BJqV`>>^M3zdrCuot{3etHb|S&8dYwl3 zTRi1&{%iH%?SC6Qc<`2;J9ku7R+g9dS+iq{`|tbz^v`uEnJtbVm(q){V_QB;+eyZ-cF$Nv1gj`r4nOnkb2Z#QCVF=7u3nRxn(9@<=qXp_z9;v4@teDAcXfG=R-qnI=-WP7y}Zjm zv8&pZg9^pP%e1r}siHzhf#F-Zb!)DNp4`n(RQJh2DmE%CC?G}FHsfltijuNaCvk4>o%|KlQmt|Km~8U-8oaXRIc4*?w{P%>sIzjPoF-0P63h^ zQR_EutQeV7xpu=QQ-A8^)3fHx;Tovm&38rBwU2KwmtV1ZWuL)Q($mxZ5LJ2YV~=~6 zzqJpf9~IK4XJysrd(GNakD1FaUV-+JX3d^G8#I}S(uS}6+U2WE|Sa3z#2@yy=^8AYX9`&^!DOab4_h8hf4LP=S! zArA{O78WUbW^wW&iigjYP*`GaKYyWDd09i}yMV_Vh{ca}aFT;6Jwzb50+c|Pq?k8*F(=W z8JRQc)1$b6*iLsPWY6qvqGxiZpYn3}vQU0nwz>R-$$raAv2`U(on|U;9XmlQpPKft zPntN1QS?n1|A@J~b*xq%yHMYhk_txpCX5;HRlc`Y{=re$8+)hGBT>Fj!UJQx%3HPa z_uM;V$k1WKhW+8b`=AyKzyJRGN8F>8zxx5-@_mtRi|=Q%-42V+9RmgofHm)m$U6t! zh39<|Zob>QeC%(pMY`_#?npg)z?K_#!;PGJ-qedTe)s#EJ>{?Nq?Xg)bhg=`4)GjA zX18iwT3AOdW&H_y=IF6wX--j*rjOp6P2t%4MqnR|2};Y?ucuYeyNXt>q=tPip-!~1>KBdef4j~+dmRze5( z#|IxkCtNS}Ue@*Ag3kBuU;d)$a?l5z`A4PxXNUgBdw*Y@?zGhDR%^Q5#0rXm9>==i zXV52Er?f%Gi^)AiC!p7{Zuj1M@6o5w?`*8!L8oI~&o*J1)agEf&T1RKl%k=>VQ);w zq5HA^$2uPCv#i%CT`zj}KKkgRkLcXFbJQ8SUG%KIQork*4E+we+pDj>N*|#->vd5x zb`rMyQWs?1E-JfP>aSziO`CSZ%#!7qsi`aGtgKkIdd)H;zt~y=vs7AI+NeP@X1X(HmX?wxnT-1!R@+I$q^J$oV~caua%>UzOB^yh)_T9n zAFS$2B=;~Y_YR4*4psSAneq)XVy$H4J3UB#ai!D`B!_@mq_~cjkWey`SHH_ zj3m~2yUOn^^KZG;llt`S8Ed^w<%e?qO}&DQ)a!S@NB+&G{8;P@uev>;@ZQ*Zk zh>f-0Xyo%gFbI1(ID`*Sq+FgXy4nNxR#Hp8pg4-YkH?SMiiYorh6?u17`yb z+wAoeHTNI|-JVXt113v*dCFv$TsPl;|9v_PTP5!yQXa{W`x)vtky6se%Y6s$DN-Ju zKwV)QcEYy1fB!zYXE=?u^Hb~(f(K;KlTYrYy?gi2M_9+%4$SNR+wZS^1ycY~GC0R!(G#ObcP?n=Oeo1^-%f**5-y;G-7R=)pD=RQ#UJ9oBsa_IMQ zy>Gd-Gam4LSLFAMy$P>+&;9k?dqCay+}mP)du{A>ru*pVZr8+W_hG1SLvnU8-A5zE z==b4TzRjlYBk4e-Y0H$Dsk9e;H>RtPZErY$t~_U$jes9jt2dY3A;_BwA} zzoo4uvH%Y#T?F7=+pqpjaEVR>_mJOp4tXjut)bNZ^3Lt9j_uy=%C0xGyRyrT?IL4( z{afG)XHSX$s%v^s`}XiAQ#gS8(%0g`ea)+XC-|S{!~gU{!{Ea60N`$vZ9O;}ddmZ| zK_m0Q0?e|Z68C!~U3{?Bypf3L7ltPt?^0#*q4bp`yn0=`_pQejJ7BH*h9 zlnMA|1^lrBIy<09Kv!=Oz`rfvbBBeEq5u&9o*U-W?vl>ku7v;ioTT4XC3%3qQ^5Yx zY5*Nxz^>rc9(<{SVS#(01lR>+KK!c&uO|9gb{gFHbxL$~@X)_Oz_ugcqZY7f2<+1Y z{JQct-^2DHpTYhhVDAvHQwZ2D1pMIw{&8{s{CNSpion?f@#DF30{&$IKe)iYOu#oR z;M*33Wkmx1WHB`>Q@~d&;42pJ6$|)^1$@Qe!82AS`ptdr_1jE8eAb|UgQTBnhn>d& z*mwj3KZD&!z}_TalaV|zKi_`)t$-ij-~;CpBrou<3;2M=CnyhFj)4DL!2b<83j}=N z0zPm7U%G%FTx{O9P2?528|r^An$0&}^iSI?mW7eN0Bf%6Cg=ME(OJoZe# zd498O;Y^LdnHqsJH3Da91kTim#mkpU zx^bpPj!%AZOXn}-XZjAnc1b_WEz7m!ArL+qktsD6W|`vm6u*CQen{Z_kmNzFcLBXW z3r+}}Ns>IU{P3KEe(j$J-?`BOnPR%t{O0!*%Upg*p}?6aIfnzLe@3^B0Yf96hsGh$MHxIcJ}Vo-d* zk0BT&9}Up2_%ZWgp5NxR&v$;aOz~LYj9bgzpDaH!cLR1}42zh2fpdHsn0RQeOu^S*U#kqDUnS$hS} zBpUsX^Ok}^@qn|F0{$}z@SzC_Es!amBRK0QLCF;Nl|jG0_YR!?eFFZsdh|;^(7vRf zdC>W2kO!V0e&&XGUPvBH^P6Rg>35fv82Uq?^vBG867=sg=!ZR1?lILkC_dD9$ZIRg zl!tyz2MU<}Ir|0kfHTH&{!03p2Y?q3CYh?o1M_2^8~PrkIr|Wvzq0>Xj~iDOu>8m5 z91u9W+aUeS1I`c&oFVprk|lLjbAqqtdEp~d=KYlUJ;i%GNq_2Msfz~I|8)ZAkpTx9 zrJs2?Y36}{EBf_$!E?N^xzXTQK>m5n$2oE6)6k{CL-XmMaSms?1^n=mhlb?GEKBNl zpfcsVm-6L<*L;nBwh1f=oc`Q{l85Hf-yk0sux1$a>voNR`#<-vz*+aE<%ea+7g``w zzT=_jSGJiz>Brf9(0{mP^y~aIdwye%_^#g``ZfDf!1Tig$2h(l+&3muW*!Xsbz5b?^yk%r{+d>&zp*vL*o$C1JoK-Y_SS&u&p#p% zv*VY3vwXMox35eY^h34``lY>iHEiL{lz&}*5R)VjgY-|OU-9k5hdwV9{fLEe?LFW|vn|07mTAXZKwR_=lUv3An7WFAYlyG#0YA4-ep$DHv; zKVkp{VgLnV052F2LnwIfY^I-;4oSc62WlDpb$;o`fq8+rM}fFU4HhjDh<)@xS(!i# zqz3RyAP&+1#6t=NI0q}ZE&uduexM7bpU2Y-i1!qT_Y^pnD{%H#gB?2r&H{U2`*wl& zPXiDKDhz;~7Uy~e&H@X>g$l%ldbMx#KYS>N6>XXPV;&&Z6@H#lK#3RNWS>CXt3ceV zH`LS!#K8*0!FmJyL5PX12Z)gsh>;bDk@aey@gZgwK9r5p57eCg$2V(&5!?G6Vtc`F zHu@g1zoH>PJh1Qu#0Lw+2TMSVu;8{3CoB*r>=$sJTOfY;E3XY(12>WP zWF;f6`5VMFi^c#k&jK;eV$J5w1|arXAof{l3f+W1~;`8o36=PTk{ez`W@4`=j#66oN*kT#sUZN~RzY+S3U z#Aj_f0b&6?0KHlnxXl{?+HBA%nuQv6|Lk8j@ar}cv!A0Ozc}Le3_r5@+>w$E_L)ii@VPcM|Df@t z(!j6ucEdL6&uUqC*Z8WX04lf;iRq)qY9 z{w;s_{nF8dY#8__ENdEn?xA}4Pd;DYmt%|xd^(2D+~gBP?5y$rGVtR(ZIk@7Z$piytxY0(OaJ>5!~va#_U73&hJy+o!^h*!h6) zOTzI7whU>TVVj@?*a8u=F9C7;LIL9U1q0hIxeo7#RAQd^+;?;M$F~J!A8;K8<_X^! z5ctl3z;_0uZ4uuY5E5W3!?y+mzBM55tpN%6-hixwZw?sk;M)TN-yZOffAG}v?2BUh ze1Y-fdkE70Y1l+{+o-Q?j%{-IPJ+bGwl&|jcz)qK3sOB-dw;%0+?!pDZ#10ay}2*o zn+*crY!LWng8_(>6lO5zaapc|Z#&d$3*UM;hi^R;n{hYw8{d*BLLZ#xeqg|NCFduO)2;QU^HRWjuc1-9XynvbC_v<(ULImr)k=&I8(;>mwFe zzLpS^D-e?_5R)qqldE1;MjMC`ZnQpPfCXZF1!8;!VtkGI{DbMJSAT#;zrv5WVSyN9 zf!JYz*kOU#VS(6T*-mrn^V-UK5#o^r(}H+p@#4#WY<7LMR`Xto_wP&#;+zAjkN9c9 zfS754m}%JtH_$NsljZm+{(aYS#9#}=U^jxletm^sU0Dtq!_V(yfA|$WP1c|6k~Rm# znhV65djUV=bq}%UQVvb>*B0^aUn90%AhsR(Q{+0$@g!`gVL*Jle1;fzff#pz7i_@% literal 0 HcmV?d00001 diff --git a/reactos/base/applications/clipbrd/resources.h b/reactos/base/applications/clipbrd/resources.h index f85336e22a4..ac958ef6258 100644 --- a/reactos/base/applications/clipbrd/resources.h +++ b/reactos/base/applications/clipbrd/resources.h @@ -1,38 +1,40 @@ #pragma once -#define MAIN_MENU 100 -#define CLIP_ICON 101 -#define ID_ACCEL 102 +#define CLIPBRD_ICON 100 +#define CLPFILE_ICON 101 +#define MAIN_MENU 102 +#define ID_ACCEL 103 -#define CMD_OPEN 100 -#define CMD_SAVE_AS 101 -#define CMD_EXIT 102 -#define CMD_DELETE 103 -#define CMD_HELP 105 -#define CMD_ABOUT 106 +#define CMD_OPEN 110 +#define CMD_SAVE_AS 111 +#define CMD_EXIT 112 +#define CMD_DELETE 113 +#define CMD_HELP 115 +#define CMD_ABOUT 116 #define CMD_AUTOMATIC 1000 -#define STRING_CLIPBOARD 100 -#define STRING_DELETE_MSG 101 -#define STRING_DELETE_TITLE 102 -#define STRING_FORMAT_NT 103 -#define STRING_FORMAT_GEN 104 +#define STRING_CLIPBOARD 120 +#define STRING_CLIPFILE 121 +#define STRING_DELETE_MSG 123 +#define STRING_DELETE_TITLE 124 +#define STRING_FORMAT_NT 125 +#define STRING_FORMAT_GEN 126 #define STRING_CF_UNKNOWN 200 #define STRING_CF_TEXT 201 #define STRING_CF_BITMAP 202 -#define STRING_CF_OEMTEXT 203 -#define STRING_CF_UNICODETEXT 204 -#define STRING_CF_DIB 205 -#define STRING_CF_LOCALE 206 -#define STRING_CF_ENHMETAFILE 207 -#define STRING_CF_METAFILEPICT 208 +#define STRING_CF_METAFILEPICT 203 +#define STRING_CF_SYLK 204 +#define STRING_CF_DIF 205 +#define STRING_CF_OEMTEXT 207 +#define STRING_CF_DIB 208 #define STRING_CF_PALETTE 209 -#define STRING_CF_DIBV5 210 -#define STRING_CF_SYLK 211 -#define STRING_CF_DIF 212 -#define STRING_CF_HDROP 213 +#define STRING_CF_UNICODETEXT 213 +#define STRING_CF_ENHMETAFILE 214 +#define STRING_CF_HDROP 215 +#define STRING_CF_LOCALE 216 +#define STRING_CF_DIBV5 217 #define ERROR_UNSUPPORTED_FORMAT 300 #define ERROR_INVALID_FILE_FORMAT 301 diff --git a/reactos/boot/bootdata/hivecls.inf b/reactos/boot/bootdata/hivecls.inf index 19b62df4eb5..5ce9771d370 100644 --- a/reactos/boot/bootdata/hivecls.inf +++ b/reactos/boot/bootdata/hivecls.inf @@ -23,6 +23,13 @@ HKCR,"CLSID\{5F5295E0-429F-1069-A2E2-08002B30309D}","",0x00000000,"Drive Propert HKCR,"CLSID\{5F5295E0-429F-1069-A2E2-08002B30309D}\InProcServer32","",0x00000000,"shell32.dll" HKCR,"CLSID\{5F5295E0-429F-1069-A2E2-08002B30309D}\InProcServer32","ThreadingModel",0x00000000,"Apartment" +; Clipboard Element +HKCR,".clp","",0x00000000,"clpfile" +HKCR,"clpfile","",0x00000000,"Clipboard Element" +HKCR,"clpfile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\clipbrd.exe,-121" +HKCR,"clpfile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\clipbrd.exe,1" +HKCR,"clpfile\shell\open\command","",0x00000000,"clipbrd.exe %1" + ; Rich Text Files HKCR,".rtf","",0x00000000,"rtffile" HKCR,".rtf\shellnew","",0x00000000,""