From b4bc690886bf6246af796641c16285245a396c69 Mon Sep 17 00:00:00 2001 From: Dmitry Chapyshev Date: Mon, 14 Apr 2008 13:11:01 +0000 Subject: [PATCH] - Add compstui, printui and ntdsapi from Wine svn path=/trunk/; revision=32955 --- reactos/dll/win32/compstui/compstui.rbuild | 16 ++ reactos/dll/win32/compstui/compstui.spec | 4 + reactos/dll/win32/compstui/compstui_main.c | 93 +++++++ reactos/dll/win32/ntdsapi/ntdsapi.c | 152 +++++++++++ reactos/dll/win32/ntdsapi/ntdsapi.rbuild | 17 ++ reactos/dll/win32/ntdsapi/ntdsapi.spec | 96 +++++++ reactos/dll/win32/printui/printui.c | 283 ++++++++++++++++++++ reactos/dll/win32/printui/printui.rbuild | 18 ++ reactos/dll/win32/printui/printui.rc | 37 +++ reactos/dll/win32/printui/printui.spec | 23 ++ reactos/dll/win32/printui/printui_private.h | 72 +++++ reactos/dll/win32/win32.rbuild | 9 + 12 files changed, 820 insertions(+) create mode 100644 reactos/dll/win32/compstui/compstui.rbuild create mode 100644 reactos/dll/win32/compstui/compstui.spec create mode 100644 reactos/dll/win32/compstui/compstui_main.c create mode 100644 reactos/dll/win32/ntdsapi/ntdsapi.c create mode 100644 reactos/dll/win32/ntdsapi/ntdsapi.rbuild create mode 100644 reactos/dll/win32/ntdsapi/ntdsapi.spec create mode 100644 reactos/dll/win32/printui/printui.c create mode 100644 reactos/dll/win32/printui/printui.rbuild create mode 100644 reactos/dll/win32/printui/printui.rc create mode 100644 reactos/dll/win32/printui/printui.spec create mode 100644 reactos/dll/win32/printui/printui_private.h diff --git a/reactos/dll/win32/compstui/compstui.rbuild b/reactos/dll/win32/compstui/compstui.rbuild new file mode 100644 index 00000000000..d7562f26069 --- /dev/null +++ b/reactos/dll/win32/compstui/compstui.rbuild @@ -0,0 +1,16 @@ + + + . + include/reactos/wine + + + + 0x600 + 0x501 + 0x501 + wine + kernel32 + ntdll + compstui_main.c + compstui.spec + diff --git a/reactos/dll/win32/compstui/compstui.spec b/reactos/dll/win32/compstui/compstui.spec new file mode 100644 index 00000000000..08fdb47ccfc --- /dev/null +++ b/reactos/dll/win32/compstui/compstui.spec @@ -0,0 +1,4 @@ +@ stdcall CommonPropertySheetUIA(long ptr long ptr) +@ stdcall CommonPropertySheetUIW(long ptr long ptr) +@ stdcall GetCPSUIUserData(long) +@ stdcall SetCPSUIUserData(long ptr) diff --git a/reactos/dll/win32/compstui/compstui_main.c b/reactos/dll/win32/compstui/compstui_main.c new file mode 100644 index 00000000000..41b24416176 --- /dev/null +++ b/reactos/dll/win32/compstui/compstui_main.c @@ -0,0 +1,93 @@ +/* + * Implementation of the Common Property Sheets User Interface + * + * Copyright 2006 Detlef Riekenberg + * + * 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 + +#define COBJMACROS +#define NONAMELESSUNION + +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "ddk/compstui.h" + +#include "wine/unicode.h" +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(compstui); + +/***************************************************** + * DllMain + */ +BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) +{ + TRACE("(%p, %d, %p)\n",hinstDLL, fdwReason, lpvReserved); + + switch(fdwReason) + { + case DLL_WINE_PREATTACH: + return FALSE; /* prefer native version */ + + case DLL_PROCESS_ATTACH: + DisableThreadLibraryCalls( hinstDLL ); + break; + } + return TRUE; +} + +/****************************************************************** + * CommonPropertySheetUIA (COMPSTUI.@) + * + */ +LONG WINAPI CommonPropertySheetUIA(HWND hWnd, PFNPROPSHEETUI pfnPropSheetUI, LPARAM lparam, LPDWORD pResult) +{ + FIXME("(%p, %p, 0x%lx, %p)\n", hWnd, pfnPropSheetUI, lparam, pResult); + return CPSUI_CANCEL; +} + +/****************************************************************** + * CommonPropertySheetUIW (COMPSTUI.@) + * + */ +LONG WINAPI CommonPropertySheetUIW(HWND hWnd, PFNPROPSHEETUI pfnPropSheetUI, LPARAM lparam, LPDWORD pResult) +{ + FIXME("(%p, %p, 0x%lx, %p)\n", hWnd, pfnPropSheetUI, lparam, pResult); + return CPSUI_CANCEL; +} + +/****************************************************************** + * GetCPSUIUserData (COMPSTUI.@) + * + */ +ULONG_PTR WINAPI GetCPSUIUserData(HWND hDlg) +{ + FIXME("(%p): stub\n", hDlg); + return 0; +} + +/****************************************************************** + * SetCPSUIUserData (COMPSTUI.@) + * + */ +BOOL WINAPI SetCPSUIUserData(HWND hDlg, ULONG_PTR UserData ) +{ + FIXME("(%p, %08lx): stub\n", hDlg, UserData); + return TRUE; +} diff --git a/reactos/dll/win32/ntdsapi/ntdsapi.c b/reactos/dll/win32/ntdsapi/ntdsapi.c new file mode 100644 index 00000000000..01acda05e56 --- /dev/null +++ b/reactos/dll/win32/ntdsapi/ntdsapi.c @@ -0,0 +1,152 @@ +/* + * Copyright (C) 2006 Dmitry Timoshkov + * + * 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 "winerror.h" +#include "winuser.h" +#include "ntdsapi.h" +#include "wine/debug.h" +#include "wine/unicode.h" + +WINE_DEFAULT_DEBUG_CHANNEL(ntdsapi); + +/***************************************************** + * DllMain + */ +BOOL WINAPI DllMain(HINSTANCE hinst, DWORD reason, LPVOID reserved) +{ + TRACE("(%p, %d, %p)\n", hinst, reason, reserved); + + switch(reason) + { + case DLL_WINE_PREATTACH: + return FALSE; /* prefer native version */ + + case DLL_PROCESS_ATTACH: + DisableThreadLibraryCalls( hinst ); + break; + } + return TRUE; +} + +/*********************************************************************** + * DsMakeSpnW (NTDSAPI.@) + */ +DWORD WINAPI DsMakeSpnW(LPCWSTR svc_class, LPCWSTR svc_name, + LPCWSTR inst_name, USHORT inst_port, + LPCWSTR ref, DWORD *spn_length, LPWSTR spn) +{ + DWORD new_spn_length; + INT len; + LPWSTR p; + + TRACE("(%s,%s,%s,%d,%s,%p,%p)\n", debugstr_w(svc_class), + debugstr_w(svc_name), debugstr_w(inst_name), inst_port, + debugstr_w(ref), spn_length, spn); + + if (!svc_class || !svc_name) + return ERROR_INVALID_PARAMETER; + + new_spn_length = strlenW(svc_class) + 1 /* for '/' */ + 1 /* for terminating '\0' */; + if (inst_name) + new_spn_length += strlenW(inst_name); + else + new_spn_length += strlenW(svc_name); + if (inst_port) + { + USHORT n = inst_port; + new_spn_length += 1 /* for ':' */; + do + { + n /= 10; + new_spn_length++; + } while (n != 0); + } + if (inst_name) + new_spn_length += 1 /* for '/' */ + strlenW(svc_name); + + if (*spn_length < new_spn_length) + { + *spn_length = new_spn_length; + return ERROR_BUFFER_OVERFLOW; + } + *spn_length = new_spn_length; + + p = spn; + len = strlenW(svc_class); + memcpy(p, svc_class, len * sizeof(WCHAR)); + p += len; + *p = '/'; + p++; + if (inst_name) + { + len = strlenW(inst_name); + memcpy(p, inst_name, len * sizeof(WCHAR)); + p += len; + *p = '\0'; + } + else + { + len = strlenW(svc_name); + memcpy(p, svc_name, len * sizeof(WCHAR)); + p += len; + *p = '\0'; + } + + if (inst_port) + { + static const WCHAR percentU[] = {'%','u',0}; + *p = ':'; + p++; + wsprintfW(p, percentU, inst_port); + p += strlenW(p); + } + + if (inst_name) + { + *p = '/'; + p++; + len = strlenW(svc_name); + memcpy(p, svc_name, len * sizeof(WCHAR)); + p += len; + *p = '\0'; + } + + TRACE("spn = %s\n", debugstr_w(spn)); + + return ERROR_SUCCESS; +} + +/*********************************************************************** + * DsMakeSpnA (NTDSAPI.@) + * + * See DsMakeSpnW. + */ +DWORD WINAPI DsMakeSpnA(LPCSTR svc_class, LPCSTR svc_name, + LPCSTR inst_name, USHORT inst_port, + LPCSTR ref, DWORD *spn_length, LPSTR spn) +{ + FIXME("(%s,%s,%s,%d,%s,%p,%p): stub!\n", debugstr_a(svc_class), + debugstr_a(svc_name), debugstr_a(inst_name), inst_port, + debugstr_a(ref), spn_length, spn); + + return ERROR_CALL_NOT_IMPLEMENTED; +} diff --git a/reactos/dll/win32/ntdsapi/ntdsapi.rbuild b/reactos/dll/win32/ntdsapi/ntdsapi.rbuild new file mode 100644 index 00000000000..baad5040a65 --- /dev/null +++ b/reactos/dll/win32/ntdsapi/ntdsapi.rbuild @@ -0,0 +1,17 @@ + + + . + include/reactos/wine + + + + 0x600 + 0x501 + 0x501 + wine + user32 + kernel32 + ntdll + ntdsapi.c + ntdsapi.spec + diff --git a/reactos/dll/win32/ntdsapi/ntdsapi.spec b/reactos/dll/win32/ntdsapi/ntdsapi.spec new file mode 100644 index 00000000000..a9607caf2fd --- /dev/null +++ b/reactos/dll/win32/ntdsapi/ntdsapi.spec @@ -0,0 +1,96 @@ +@ stub DsAddSidHistoryA +@ stub DsAddSidHistoryW +@ stub DsBindA +@ stub DsBindW +@ stub DsBindWithCredA +@ stub DsBindWithCredW +@ stub DsBindWithSpnA +@ stub DsBindWithSpnW +@ stub DsClientMakeSpnForTargetServerA +@ stub DsClientMakeSpnForTargetServerW +@ stub DsCrackNamesA +@ stub DsCrackNamesW +@ stub DsCrackSpn2A +@ stub DsCrackSpn2W +@ stub DsCrackSpn3W +@ stub DsCrackSpnA +@ stub DsCrackSpnW +@ stub DsCrackUnquotedMangledRdnA +@ stub DsCrackUnquotedMangledRdnW +@ stub DsFreeDomainControllerInfoA +@ stub DsFreeDomainControllerInfoW +@ stub DsFreeNameResultA +@ stub DsFreeNameResultW +@ stub DsFreePasswordCredentials +@ stub DsFreeSchemaGuidMapA +@ stub DsFreeSchemaGuidMapW +@ stub DsFreeSpnArrayA +@ stub DsFreeSpnArrayW +@ stub DsGetDomainControllerInfoA +@ stub DsGetDomainControllerInfoW +@ stub DsGetRdnW +@ stub DsGetSpnA +@ stub DsGetSpnW +@ stub DsInheritSecurityIdentityA +@ stub DsInheritSecurityIdentityW +@ stub DsIsMangledDnA +@ stub DsIsMangledDnW +@ stub DsIsMangledRdnValueA +@ stub DsIsMangledRdnValueW +@ stub DsListDomainsInSiteA +@ stub DsListDomainsInSiteW +@ stub DsListInfoForServerA +@ stub DsListInfoForServerW +@ stub DsListRolesA +@ stub DsListRolesW +@ stub DsListServersForDomainInSiteA +@ stub DsListServersForDomainInSiteW +@ stub DsListServersInSiteA +@ stub DsListServersInSiteW +@ stub DsListSitesA +@ stub DsListSitesW +@ stub DsLogEntry +@ stub DsMakePasswordCredentialsA +@ stub DsMakePasswordCredentialsW +@ stdcall DsMakeSpnA(str str str long str ptr ptr) +@ stdcall DsMakeSpnW(wstr wstr wstr long wstr ptr ptr) +@ stub DsMapSchemaGuidsA +@ stub DsMapSchemaGuidsW +@ stub DsQuoteRdnValueA +@ stub DsQuoteRdnValueW +@ stub DsRemoveDsDomainA +@ stub DsRemoveDsDomainW +@ stub DsRemoveDsServerA +@ stub DsRemoveDsServerW +@ stub DsReplicaAddA +@ stub DsReplicaAddW +@ stub DsReplicaConsistencyCheck +@ stub DsReplicaDelA +@ stub DsReplicaDelW +@ stub DsReplicaFreeInfo +@ stub DsReplicaGetInfo2W +@ stub DsReplicaGetInfoW +@ stub DsReplicaModifyA +@ stub DsReplicaModifyW +@ stub DsReplicaSyncA +@ stub DsReplicaSyncAllA +@ stub DsReplicaSyncAllW +@ stub DsReplicaSyncW +@ stub DsReplicaUpdateRefsA +@ stub DsReplicaUpdateRefsW +@ stub DsReplicaVerifyObjectsA +@ stub DsReplicaVerifyObjectsW +@ stub DsServerRegisterSpnA +@ stub DsServerRegisterSpnW +@ stub DsUnBindA +@ stub DsUnBindW +@ stub DsUnquoteRdnValueA +@ stub DsUnquoteRdnValueW +@ stub DsWriteAccountSpnA +@ stub DsWriteAccountSpnW +@ stub DsaopBind +@ stub DsaopBindWithCred +@ stub DsaopBindWithSpn +@ stub DsaopExecuteScript +@ stub DsaopPrepareScript +@ stub DsaopUnBind diff --git a/reactos/dll/win32/printui/printui.c b/reactos/dll/win32/printui/printui.c new file mode 100644 index 00000000000..c25aadb14cc --- /dev/null +++ b/reactos/dll/win32/printui/printui.c @@ -0,0 +1,283 @@ +/* + * Implementation of the Printer User Interface Dialogs + * + * Copyright 2006-2007 Detlef Riekenberg + * + * 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 + +#define COBJMACROS +#define NONAMELESSUNION + +#include "windef.h" +#include "winbase.h" +#include "wingdi.h" +#include "winuser.h" +#include "winreg.h" +#include "winver.h" +#include "winnls.h" +#include "shellapi.h" + +#include "wine/unicode.h" +#include "wine/debug.h" +#include "printui_private.h" + +WINE_DEFAULT_DEBUG_CHANNEL(printui); + +HINSTANCE PRINTUI_hInstance = NULL; + +/* ################################# */ + +/* Must be in order with OPT_* */ +static const WCHAR optionsW[OPT_MAX+1]={'a','b','c','f','h','j','l','m','n','t','r','v',0}; + +/* Must be in order with FLAG_* */ +static const WCHAR flagsW[FLAG_MAX+1]={'q','w','y','z','Z',0}; + + +/* ################################ + * get_next_wstr() [Internal] + * + * Get the next WSTR, when available + * + */ + +static LPWSTR get_next_wstr(context_t * cx) +{ + LPWSTR ptr; + + ptr = cx->pNextCharW; + if (ptr && ptr[0]) { + cx->pNextCharW = NULL; + return ptr; + } + + /* Get the next Parameter, when available */ + if (cx->next_arg < cx->argc) { + ptr = cx->argv[cx->next_arg]; + cx->next_arg++; + cx->pNextCharW = NULL; + return ptr; + } + return NULL; +} + + +/* ################################ + * get_next_wchar() [Internal] + * + * Get the next WCHAR from the Commandline or from the File (@ Filename) + * + * ToDo: Support Parameter from a File ( "@Filename" ) + * + */ + +static WCHAR get_next_wchar(context_t * cx, BOOL use_next_parameter) +{ + WCHAR c; + + /* Try the next WCHAR in the actual Parameter */ + if (cx->pNextCharW) { + c = *cx->pNextCharW; + if (c) { + cx->pNextCharW++; + return c; + } + /* We reached the end of the Parameter */ + cx->pNextCharW = NULL; + } + + /* Get the next Parameter, when available and allowed */ + if ((cx->pNextCharW == NULL) && (cx->next_arg < cx->argc) && (use_next_parameter)) { + cx->pNextCharW = cx->argv[cx->next_arg]; + cx->next_arg++; + } + + if (cx->pNextCharW) { + c = *cx->pNextCharW; + if (c) { + cx->pNextCharW++; + } + else + { + /* We reached the end of the Parameter */ + cx->pNextCharW = NULL; + } + return c; + } + return '\0'; +} + +/* ################################ */ +static BOOL parse_rundll(context_t * cx) +{ + LPWSTR ptr; + DWORD index; + WCHAR txtW[2]; + WCHAR c; + + + c = get_next_wchar(cx, TRUE); + txtW[1] = '\0'; + + while (c) + { + + while ( (c == ' ') || (c == '\t')) + { + c = get_next_wchar(cx, TRUE); + } + txtW[0] = c; + + if (c == '@') { + /* read commands from a File */ + ptr = get_next_wstr(cx); + FIXME("redir not supported: %s\n", debugstr_w(ptr)); + return FALSE; + } + else if (c == '/') { + c = get_next_wchar(cx, FALSE); + while ( c ) + { + txtW[0] = c; + ptr = strchrW(optionsW, c); + if (ptr) { + index = ptr - optionsW; + cx->options[index] = get_next_wstr(cx); + TRACE(" opt: %s %s\n", debugstr_w(txtW), debugstr_w(cx->options[index])); + c = 0; + } + else + { + ptr = strchrW(flagsW, c); + if (ptr) { + index = ptr - flagsW; + cx->flags[index] = TRUE; + TRACE("flag: %s\n", debugstr_w(txtW)); + } + else + { + cx->command = c; + cx->subcommand = '\0'; + TRACE(" cmd: %s\n", debugstr_w(txtW)); + } + + /* help has priority over all commands */ + if (c == '?') { + return TRUE; + } + + c = get_next_wchar(cx, FALSE); + + /* Some commands use two wchar */ + if ((cx->command == 'd') || (cx->command == 'g') || (cx->command == 'i') || + (cx->command == 'S') || (cx->command == 'X') ){ + cx->subcommand = c; + txtW[0] = c; + TRACE(" sub: %s\n", debugstr_w(txtW)); + c = get_next_wchar(cx, FALSE); + } + } + } + c = get_next_wchar(cx, TRUE); + + } + else + { + /* The commands 'S' and 'X' have additional Parameter */ + if ((cx->command == 'S') || (cx->command == 'X')) { + + /* the actual WCHAR is the start from the extra Parameter */ + cx->pNextCharW--; + TRACE("%d extra Parameter, starting with %s\n", 1 + (cx->argc - cx->next_arg), debugstr_w(cx->pNextCharW)); + return TRUE; + } + FIXME("0x%x: %s is unknown\n", c, debugstr_wn(&c, 1)); + return FALSE; + } + + } + return TRUE; +} + +/***************************************************** + * DllMain + */ +BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) +{ + TRACE("(%p, %d, %p)\n",hinstDLL, fdwReason, lpvReserved); + + switch(fdwReason) + { + case DLL_WINE_PREATTACH: + return FALSE; /* prefer native version */ + + case DLL_PROCESS_ATTACH: + PRINTUI_hInstance = hinstDLL; + DisableThreadLibraryCalls( hinstDLL ); + break; + } + return TRUE; +} + + +/***************************************************** + * PrintUIEntryW [printui.@] + * Commandline-Interface for using printui.dll with rundll32.exe + * + */ +void WINAPI PrintUIEntryW(HWND hWnd, HINSTANCE hInst, LPCWSTR pCommand, DWORD nCmdShow) +{ + context_t cx; + BOOL res = FALSE; + + TRACE("(%p, %p, %s, 0x%x)\n", hWnd, hInst, debugstr_w(pCommand), nCmdShow); + + memset(&cx, 0, sizeof(context_t)); + cx.hWnd = hWnd; + cx.nCmdShow = nCmdShow; + + if ((pCommand) && (pCommand[0])) { + /* result is allocated with GlobalAlloc() */ + cx.argv = CommandLineToArgvW(pCommand, &cx.argc); + TRACE("got %d args at %p\n", cx.argc, cx.argv); + + res = parse_rundll(&cx); + } + + if (res && cx.command) { + switch (cx.command) + { + + default: + { + WCHAR txtW[3]; + txtW[0] = cx.command; + txtW[1] = cx.subcommand; + txtW[2] = '\0'; + FIXME("command not implemented: %s\n", debugstr_w(txtW)); + } + } + } + + if ((res == FALSE) || (cx.command == '\0')) { + FIXME("dialog: Printer / The operation was not successful\n"); + } + + GlobalFree(cx.argv); + +} diff --git a/reactos/dll/win32/printui/printui.rbuild b/reactos/dll/win32/printui/printui.rbuild new file mode 100644 index 00000000000..9ed6ce21ca1 --- /dev/null +++ b/reactos/dll/win32/printui/printui.rbuild @@ -0,0 +1,18 @@ + + + . + include/reactos/wine + + + + 0x600 + 0x501 + 0x501 + wine + shell32 + kernel32 + ntdll + printui.c + printui.rc + printui.spec + diff --git a/reactos/dll/win32/printui/printui.rc b/reactos/dll/win32/printui/printui.rc new file mode 100644 index 00000000000..d8d0d4bde30 --- /dev/null +++ b/reactos/dll/win32/printui/printui.rc @@ -0,0 +1,37 @@ +/* + * Top level resource file for printui.dll + * + * Copyright 2007 Detlef Riekenberg + * + * 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 "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "winver.h" + +#define WINE_FILENAME_STR "printui.dll" +#define WINE_FILEDESCRIPTION_STR "User Interface for Printing" + +/* Same Version as WinXP_sp2 */ +#define WINE_FILEVERSION 5,1,2600,2180 +#define WINE_FILEVERSION_STR "5.1.2600.2180" + +#define WINE_PRODUCTVERSION 5,1,2600,2180 +#define WINE_PRODUCTVERSION_STR "5.1.2600.2180" + +#include "wine/wine_common_ver.rc" diff --git a/reactos/dll/win32/printui/printui.spec b/reactos/dll/win32/printui/printui.spec new file mode 100644 index 00000000000..dcea8dc2e07 --- /dev/null +++ b/reactos/dll/win32/printui/printui.spec @@ -0,0 +1,23 @@ +@ stub ConnectToPrinterDlg +@ stub ConnectToPrinterPropertyPage +@ stub ConstructPrinterFriendlyName +@ stub DllCanUnloadNow +@ stub DllGetClassObject +@ stub DocumentPropertiesWrap +@ stub PnPInterface +@ stub PrintNotifyTray_Exit +@ stub PrintNotifyTray_Init +@ stdcall PrintUIEntryW(ptr ptr wstr long) +@ stub PrinterPropPageProvider +@ stub RegisterPrintNotify +@ stub ShowErrorMessageHR +@ stub ShowErrorMessageSC +@ stub UnregisterPrintNotify +@ stub bFolderEnumPrinters +@ stub bFolderGetPrinter +@ stub bFolderRefresh +@ stub bPrinterSetup +@ stub vDocumentDefaults +@ stub vPrinterPropPages +@ stub vQueueCreate +@ stub vServerPropPages diff --git a/reactos/dll/win32/printui/printui_private.h b/reactos/dll/win32/printui/printui_private.h new file mode 100644 index 00000000000..56143b77874 --- /dev/null +++ b/reactos/dll/win32/printui/printui_private.h @@ -0,0 +1,72 @@ +/* + * Implementation of the Printer User Interface Dialogs: private Header + * + * Copyright 2007 Detlef Riekenberg + * + * 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 + */ + +#ifndef __WINE_PRINTUI_PRIVATE__ +#define __WINE_PRINTUI_PRIVATE__ + +/* Index for Options with an argument */ +/* Must be in order with optionsW */ +typedef enum _OPT_INDEX { + OPT_A = 0, + OPT_B, + OPT_C, + OPT_F, + OPT_H, + OPT_J, + OPT_L, + OPT_M, + OPT_N, + OPT_R, + OPT_T, + OPT_V, + OPT_MAX +} OPT_INDEX; + +/* Index for Flags without an argument */ +/* Must be in order with flagsW */ +typedef enum _FLAG_INDEX { + FLAG_Q = 0, + FLAG_W, + FLAG_Y, + FLAG_Z, + FLAG_ZZ, + FLAG_MAX +} FLAG_INDEX; + + +typedef struct tag_context { + HWND hWnd; + DWORD nCmdShow; + LPWSTR * argv; + LPWSTR pNextCharW; + int argc; + int next_arg; + WCHAR command; + WCHAR subcommand; + LPWSTR options[OPT_MAX]; + BOOL flags[FLAG_MAX]; +} context_t; + + +/* ## DLL-wide Globals ## */ +extern HINSTANCE PRINTUI_hInstance; + + +#endif diff --git a/reactos/dll/win32/win32.rbuild b/reactos/dll/win32/win32.rbuild index bc7132ab17a..075d3bd1ed7 100644 --- a/reactos/dll/win32/win32.rbuild +++ b/reactos/dll/win32/win32.rbuild @@ -52,6 +52,9 @@ + + + @@ -181,6 +184,9 @@ + + + @@ -211,6 +217,9 @@ + + +