diff --git a/reactos/baseaddress.rbuild b/reactos/baseaddress.rbuild index b2256f8a333..49e025b7687 100644 --- a/reactos/baseaddress.rbuild +++ b/reactos/baseaddress.rbuild @@ -9,6 +9,7 @@ + diff --git a/reactos/boot/bootdata/packages/reactos.dff b/reactos/boot/bootdata/packages/reactos.dff index 40557430f9c..5403bab8814 100644 --- a/reactos/boot/bootdata/packages/reactos.dff +++ b/reactos/boot/bootdata/packages/reactos.dff @@ -379,6 +379,7 @@ dll\win32\uext2\uext2.dll 1 dll\win32\ufat\ufat.dll 1 dll\win32\ufatx\ufatx.dll 1 optional dll\win32\untfs\untfs.dll 1 +dll\win32\url\url.dll 1 dll\win32\urlmon\urlmon.dll 1 dll\win32\user32\user32.dll 1 dll\win32\userenv\userenv.dll 1 diff --git a/reactos/dll/win32/url/url.rbuild b/reactos/dll/win32/url/url.rbuild new file mode 100644 index 00000000000..133de9c8104 --- /dev/null +++ b/reactos/dll/win32/url/url.rbuild @@ -0,0 +1,12 @@ + + + . + include/reactos/wine + + url_main.c + wine + shell32 + shlwapi + kernel32 + ntdll + diff --git a/reactos/dll/win32/url/url.spec b/reactos/dll/win32/url/url.spec new file mode 100644 index 00000000000..cedd9e4d545 --- /dev/null +++ b/reactos/dll/win32/url/url.spec @@ -0,0 +1,23 @@ +@ stdcall AddMIMEFileTypesPS(ptr ptr) +@ stub AutodialHookCallback +@ stub DllCanUnloadNow +@ stub DllGetClassObject +@ stub DummyEntryPoint +@ stub DummyEntryPointA +@ stdcall FileProtocolHandler(long ptr str long) FileProtocolHandlerA +@ stdcall FileProtocolHandlerA(long ptr str long) +@ stdcall InetIsOffline(long) +@ stub MIMEAssociationDialogA +@ stub MIMEAssociationDialogW +@ stub MailToProtocolHandler +@ stub MailToProtocolHandlerA +@ stub NewsProtocolHandler +@ stub NewsProtocolHandlerA +@ stub OpenURL +@ stub OpenURLA +@ stdcall TelnetProtocolHandler(long str) TelnetProtocolHandlerA +@ stdcall TelnetProtocolHandlerA(long str) +@ stub TranslateURLA +@ stub TranslateURLW +@ stub URLAssociationDialogA +@ stub URLAssociationDialogW diff --git a/reactos/dll/win32/url/url_main.c b/reactos/dll/win32/url/url_main.c new file mode 100644 index 00000000000..69b46eaa317 --- /dev/null +++ b/reactos/dll/win32/url/url_main.c @@ -0,0 +1,118 @@ +/* + * Copyright 2006 Alexandre Julliard + * + * 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 +#include "windef.h" +#include "winbase.h" +#include "winreg.h" +#include "winerror.h" +#include "shellapi.h" +#include "shlwapi.h" +#include "intshcut.h" +#include "winuser.h" +#include "commctrl.h" +#include "prsht.h" +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(url); + +/*********************************************************************** + * DllMain (URL.@) + */ +BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, LPVOID reserved ) +{ + switch(reason) + { + case DLL_WINE_PREATTACH: + return FALSE; /* prefer native version */ + case DLL_PROCESS_ATTACH: + DisableThreadLibraryCalls( inst ); + break; + } + return TRUE; +} + +/*********************************************************************** + * AddMIMEFileTypesPS (URL.@) + * + * Build and Manage a Filetype-Association Property Sheet + * + * PARAMS + * unknown1 [I] Pointer to an Read-Only Area + * lppsh [I] PTR to the target PropertySheetHeader (ANSI) + * + * RETURNS + * Success: 0 + * + */ +DWORD WINAPI AddMIMEFileTypesPS(VOID * unknown1, LPPROPSHEETHEADERA lppsh) +{ + FIXME("(%p, %p): stub!\n", unknown1, lppsh); + return 0; +} + +/*********************************************************************** + * InetIsOffline (URL.@) + * + */ +BOOL WINAPI InetIsOffline(DWORD flags) +{ + FIXME("(%08x): stub!\n", flags); + + return FALSE; +} + +/*********************************************************************** + * FileProtocolHandlerA (URL.@) + * + * Handles a URL given to it and executes it. + * + * HWND hWnd - Parent Window + * HINSTANCE hInst - ignored + * LPCSTR pszUrl - The URL that needs to be handled + * int nShowCmd - How to display the operation. + */ + +HRESULT WINAPI FileProtocolHandlerA(HWND hWnd, HINSTANCE hInst, LPCSTR pszUrl, + int nShowCmd) +{ + CHAR pszPath[MAX_PATH]; + DWORD size = MAX_PATH; + HRESULT createpath = PathCreateFromUrlA(pszUrl,pszPath,&size,0); + + TRACE("(%p, %s, %d)\n",hWnd,debugstr_a(pszUrl),nShowCmd); + + if(createpath != S_OK) + return E_FAIL; + + ShellExecuteA(hWnd,NULL,pszPath,NULL,NULL,nShowCmd); + + return S_OK; +} + +/*********************************************************************** + * TelnetProtocolHandlerA (URL.@) + * + */ + +HRESULT WINAPI TelnetProtocolHandlerA(HWND hWnd, LPSTR lpStr) +{ + FIXME("(%p, %p): stub!\n",hWnd,lpStr); + + return E_NOTIMPL; +} diff --git a/reactos/dll/win32/win32.rbuild b/reactos/dll/win32/win32.rbuild index 18b59e1faba..f61949f4441 100644 --- a/reactos/dll/win32/win32.rbuild +++ b/reactos/dll/win32/win32.rbuild @@ -436,6 +436,9 @@ + + + diff --git a/reactos/media/doc/README.WINE b/reactos/media/doc/README.WINE index 11118a771b6..8104a0e3509 100644 --- a/reactos/media/doc/README.WINE +++ b/reactos/media/doc/README.WINE @@ -111,6 +111,7 @@ reactos/dll/win32/stdole2.tlb # Autosync reactos/dll/win32/sxs # Autosync reactos/dll/win32/tapi32 # Autosync reactos/dll/win32/twain_32 # Out of sync +reactos/dll/win32/url # Autosync reactos/dll/win32/urlmon # Autosync reactos/dll/win32/usp10 # Autosync reactos/dll/win32/uxtheme # Autosync