- Add compstui, printui and ntdsapi from Wine

svn path=/trunk/; revision=32955
This commit is contained in:
Dmitry Chapyshev 2008-04-14 13:11:01 +00:00
parent f724d129ff
commit b4bc690886
12 changed files with 820 additions and 0 deletions

View file

@ -0,0 +1,16 @@
<module name="compstui" type="win32dll" baseaddress="${BASEADDRESS_COMPSTUI}" installbase="system32" installname="compstui.dll" allowwarnings="true" entrypoint="0">
<importlibrary definition="compstui.spec.def" />
<include base="compstui">.</include>
<include base="ReactOS">include/reactos/wine</include>
<define name="__REACTOS__" />
<define name="__WINESRC__" />
<define name="__USE_W32API" />
<define name="_WIN32_IE">0x600</define>
<define name="_WIN32_WINNT">0x501</define>
<define name="WINVER">0x501</define>
<library>wine</library>
<library>kernel32</library>
<library>ntdll</library>
<file>compstui_main.c</file>
<file>compstui.spec</file>
</module>

View file

@ -0,0 +1,4 @@
@ stdcall CommonPropertySheetUIA(long ptr long ptr)
@ stdcall CommonPropertySheetUIW(long ptr long ptr)
@ stdcall GetCPSUIUserData(long)
@ stdcall SetCPSUIUserData(long ptr)

View file

@ -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 <stdarg.h>
#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;
}

View file

@ -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 <stdarg.h>
#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;
}

View file

@ -0,0 +1,17 @@
<module name="ntdsapi" type="win32dll" baseaddress="${BASEADDRESS_NTDSAPI}" installbase="system32" installname="ntdsapi.dll" allowwarnings="true" entrypoint="0">
<importlibrary definition="ntdsapi.spec.def" />
<include base="ntdsapi">.</include>
<include base="ReactOS">include/reactos/wine</include>
<define name="__REACTOS__" />
<define name="__WINESRC__" />
<define name="__USE_W32API" />
<define name="_WIN32_IE">0x600</define>
<define name="_WIN32_WINNT">0x501</define>
<define name="WINVER">0x501</define>
<library>wine</library>
<library>user32</library>
<library>kernel32</library>
<library>ntdll</library>
<file>ntdsapi.c</file>
<file>ntdsapi.spec</file>
</module>

View file

@ -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

View file

@ -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 <stdarg.h>
#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);
}

View file

@ -0,0 +1,18 @@
<module name="printui" type="win32dll" baseaddress="${BASEADDRESS_PRINTUI}" installbase="system32" installname="printui.dll" allowwarnings="true" entrypoint="0">
<importlibrary definition="printui.spec.def" />
<include base="printui">.</include>
<include base="ReactOS">include/reactos/wine</include>
<define name="__REACTOS__" />
<define name="__WINESRC__" />
<define name="__USE_W32API" />
<define name="_WIN32_IE">0x600</define>
<define name="_WIN32_WINNT">0x501</define>
<define name="WINVER">0x501</define>
<library>wine</library>
<library>shell32</library>
<library>kernel32</library>
<library>ntdll</library>
<file>printui.c</file>
<file>printui.rc</file>
<file>printui.spec</file>
</module>

View file

@ -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"

View file

@ -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

View file

@ -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

View file

@ -52,6 +52,9 @@
<directory name="comdlg32">
<xi:include href="comdlg32/comdlg32.rbuild" />
</directory>
<directory name="compstui">
<xi:include href="compstui/compstui.rbuild" />
</directory>
<directory name="crtdll">
<xi:include href="crtdll/crtdll.rbuild" />
</directory>
@ -181,6 +184,9 @@
<directory name="newdev">
<xi:include href="newdev/newdev.rbuild" />
</directory>
<directory name="ntdsapi">
<xi:include href="ntdsapi/ntdsapi.rbuild" />
</directory>
<directory name="ntmarta">
<xi:include href="ntmarta/ntmarta.rbuild" />
</directory>
@ -211,6 +217,9 @@
<directory name="powrprof">
<xi:include href="powrprof/powrprof.rbuild" />
</directory>
<directory name="printui">
<xi:include href="printui/printui.rbuild" />
</directory>
<directory name="psapi">
<xi:include href="psapi/psapi.rbuild" />
</directory>