Sync with trunk head

svn path=/branches/header-work/; revision=46148
This commit is contained in:
Amine Khaldi
2010-03-12 20:08:06 +00:00
354 changed files with 14248 additions and 8386 deletions
+1 -1
View File
@@ -14,7 +14,7 @@
#define NDEBUG
#include <debug.h>
//#define GET_IF_ENTRY2_IMPLEMENTED 1
DWORD _RpcOpenHandle(
wchar_t *arg_1,
+8 -6
View File
@@ -21,6 +21,7 @@
SERVICE_STATUS_HANDLE ServiceStatusHandle;
SERVICE_STATUS SvcStatus;
static WCHAR ServiceName[] = L"WlanSvc";
/* FUNCTIONS *****************************************************************/
static DWORD WINAPI RpcThreadRoutine(LPVOID lpParameter)
@@ -94,13 +95,14 @@ ServiceMain(DWORD argc, LPWSTR *argv)
DPRINT("ServiceMain() called\n");
SvcStatus.dwServiceType = SERVICE_WIN32_OWN_PROCESS;
SvcStatus.dwCurrentState = SERVICE_START_PENDING;
SvcStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN;
SvcStatus.dwCheckPoint = 0;
SvcStatus.dwWin32ExitCode = 0;
SvcStatus.dwWin32ExitCode = NO_ERROR;
SvcStatus.dwServiceSpecificExitCode = 0;
SvcStatus.dwWaitHint = 4000;
ServiceStatusHandle = RegisterServiceCtrlHandlerExW(SERVICE_NAME,
ServiceStatusHandle = RegisterServiceCtrlHandlerExW(ServiceName,
ServiceControlHandler,
NULL);
@@ -115,15 +117,15 @@ ServiceMain(DWORD argc, LPWSTR *argv)
NULL);
if (!hThread)
{
DPRINT("Can't create RpcThread\n");
UpdateServiceStatus(ServiceStatusHandle, SERVICE_STOPPED, 0);
}
else
{
WaitForSingleObject(hThread, INFINITE);
CloseHandle(hThread);
}
UpdateServiceStatus(ServiceStatusHandle, SERVICE_STOPPED, 0);
DPRINT("ServiceMain() done\n");
}
@@ -132,7 +134,7 @@ wmain(int argc, WCHAR *argv[])
{
SERVICE_TABLE_ENTRYW ServiceTable[2] =
{
{SERVICE_NAME, ServiceMain},
{ServiceName, ServiceMain},
{NULL, NULL}
};
+1
View File
@@ -8,6 +8,7 @@
<library>advapi32</library>
<library>rpcrt4</library>
<library>pseh</library>
<library>iphlpapi</library>
<file>wlansvc.c</file>
<file>rpcserver.c</file>
</module>
+1 -1
View File
@@ -279,7 +279,7 @@ ShutdownHandlerRoutine(DWORD dwCtrlType)
{
DPRINT1("ShutdownHandlerRoutine() called\n");
if (dwCtrlType == CTRL_SHUTDOWN_EVENT)
if (dwCtrlType & (CTRL_SHUTDOWN_EVENT | CTRL_LOGOFF_EVENT))
{
DPRINT1("Shutdown event received!\n");
ScmShutdown = TRUE;
+1
View File
@@ -670,6 +670,7 @@ boot\bootdata\bootcdregtest\regtest.cmd 7 optional
; Subsystems
subsystems\win32\csrss\csrss.exe 1
subsystems\win32\csrss\win32csr\win32csr.dll 1
subsystems\win32\csrss\csrsrv\csrsrv.dll 1
subsystems\ntvdm\ntvdm.exe 1
subsystems\win32\win32k\win32k.sys 1
+2
View File
@@ -8,7 +8,9 @@
*/
#include "precomp.h"
#ifndef _MSC_VER
const GUID KSCATEGORY_CLOCK = {0x53172480, 0x4791, 0x11D0, {0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}};
#endif
class CKsClockForwarder : public IDistributorNotify,
public IKsObject
+2
View File
@@ -9,7 +9,9 @@
#include "precomp.h"
/* FIXME guid mess */
#ifndef _MSC_VER
const GUID IID_IUnknown = {0x00000000, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}};
#endif
const GUID IID_IClassFactory = {0x00000001, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}};
class CKsDataTypeHandler : public IKsDataTypeHandler
+25 -2
View File
@@ -103,7 +103,31 @@ CEnumMediaTypes::Next(
if (!MediaType)
break;
CopyMemory(MediaType, &m_MediaTypes[m_Index + i], sizeof(AM_MEDIA_TYPE));
if (m_MediaTypes[m_Index + i].cbFormat)
{
LPBYTE pFormat = (LPBYTE)CoTaskMemAlloc(m_MediaTypes[m_Index + i].cbFormat);
if (!pFormat)
{
CoTaskMemFree(MediaType);
break;
}
CopyMemory(MediaType, &m_MediaTypes[m_Index + i], sizeof(AM_MEDIA_TYPE));
MediaType->pbFormat = pFormat;
CopyMemory(MediaType->pbFormat, m_MediaTypes[m_Index + i].pbFormat, m_MediaTypes[m_Index + i].cbFormat);
MediaType->pUnk = (IUnknown *)this;
MediaType->pUnk->AddRef();
}
else
{
CopyMemory(MediaType, &m_MediaTypes[m_Index + i], sizeof(AM_MEDIA_TYPE));
}
if (MediaType->pUnk)
{
MediaType->pUnk->AddRef();
}
ppMediaTypes[i] = MediaType;
i++;
}
@@ -114,7 +138,6 @@ CEnumMediaTypes::Next(
}
m_Index += i;
if (i < cMediaTypes)
return S_FALSE;
else
+118 -68
View File
@@ -9,8 +9,12 @@
#include "precomp.h"
const GUID IID_IKsPinEx = {0x7bb38260L, 0xd19c, 0x11d2, {0xb3, 0x8a, 0x00, 0xa0, 0xc9, 0x5e, 0xc2, 0x2e}};
const GUID KSPROPSETID_Connection = {0x1D58C920L, 0xAC9B, 0x11CF, {0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}};
#ifndef _MSC_VER
const GUID KSPROPSETID_Connection = {0x1D58C920L, 0xAC9B, 0x11CF, {0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}};
#endif
#ifndef _MSC_VER
KSPIN_INTERFACE StandardPinInterface =
{
{STATIC_KSINTERFACESETID_Standard},
@@ -25,6 +29,23 @@ KSPIN_MEDIUM StandardPinMedium =
0
};
#else
KSPIN_INTERFACE StandardPinInterface =
{
STATIC_KSINTERFACESETID_Standard,
KSINTERFACE_STANDARD_STREAMING,
0
};
KSPIN_MEDIUM StandardPinMedium =
{
STATIC_KSMEDIUMSETID_Standard,
KSMEDIUM_TYPE_ANYINSTANCE,
0
};
#endif
class CInputPin : public IPin,
public IKsPropertySet,
@@ -117,9 +138,9 @@ public:
//---------------------------------------------------------------
HRESULT STDMETHODCALLTYPE CheckFormat(const AM_MEDIA_TYPE *pmt);
HRESULT STDMETHODCALLTYPE CreatePin();
HRESULT STDMETHODCALLTYPE CreatePinHandle(PKSPIN_MEDIUM Medium, PKSPIN_INTERFACE Interface, PKSDATAFORMAT DataFormat);
CInputPin(IBaseFilter * ParentFilter, LPCWSTR PinName, HANDLE hFilter, ULONG PinId, KSPIN_COMMUNICATION Communication) : m_Ref(0), m_ParentFilter(ParentFilter), m_PinName(PinName), m_hFilter(hFilter), m_hPin(0), m_PinId(PinId), m_MemAllocator(0), m_IoCount(0), m_Communication(Communication), m_Pin(0){};
HRESULT STDMETHODCALLTYPE CreatePin(const AM_MEDIA_TYPE *pmt);
HRESULT STDMETHODCALLTYPE CreatePinHandle(PKSPIN_MEDIUM Medium, PKSPIN_INTERFACE Interface, const AM_MEDIA_TYPE *pmt);
CInputPin(IBaseFilter * ParentFilter, LPCWSTR PinName, HANDLE hFilter, ULONG PinId, KSPIN_COMMUNICATION Communication) : m_Ref(0), m_ParentFilter(ParentFilter), m_PinName(PinName), m_hFilter(hFilter), m_hPin(0), m_PinId(PinId), m_MemAllocator(0), m_IoCount(0), m_Communication(Communication), m_Pin(0), m_ReadOnly(0){};
virtual ~CInputPin(){};
protected:
@@ -135,6 +156,7 @@ protected:
KSPIN_INTERFACE m_Interface;
KSPIN_MEDIUM m_Medium;
IPin * m_Pin;
BOOL m_ReadOnly;
};
HRESULT
@@ -160,39 +182,18 @@ CInputPin::QueryInterface(
}
else if (IsEqualGUID(refiid, IID_IKsObject))
{
if (!m_hPin)
{
HRESULT hr = CreatePin();
if (FAILED(hr))
return hr;
}
*Output = (IKsObject*)(this);
reinterpret_cast<IKsObject*>(*Output)->AddRef();
return NOERROR;
}
else if (IsEqualGUID(refiid, IID_IKsPropertySet))
{
if (!m_hPin)
{
HRESULT hr = CreatePin();
if (FAILED(hr))
return hr;
}
*Output = (IKsPropertySet*)(this);
reinterpret_cast<IKsPropertySet*>(*Output)->AddRef();
return NOERROR;
}
else if (IsEqualGUID(refiid, IID_IKsControl))
{
if (!m_hPin)
{
HRESULT hr = CreatePin();
if (FAILED(hr))
return hr;
}
*Output = (IKsControl*)(this);
reinterpret_cast<IKsControl*>(*Output)->AddRef();
return NOERROR;
@@ -200,13 +201,6 @@ CInputPin::QueryInterface(
else if (IsEqualGUID(refiid, IID_IKsPin) ||
IsEqualGUID(refiid, IID_IKsPinEx))
{
if (!m_hPin)
{
HRESULT hr = CreatePin();
if (FAILED(hr))
return hr;
}
*Output = (IKsPinEx*)(this);
reinterpret_cast<IKsPinEx*>(*Output)->AddRef();
return NOERROR;
@@ -227,7 +221,7 @@ CInputPin::QueryInterface(
// IMemInputPin
//
//
HRESULT
STDMETHODCALLTYPE
CInputPin::GetAllocator(IMemAllocator **ppAllocator)
@@ -251,6 +245,7 @@ CInputPin::NotifyAllocator(IMemAllocator *pAllocator, BOOL bReadOnly)
}
m_MemAllocator = pAllocator;
m_ReadOnly = bReadOnly;
return NOERROR;
}
@@ -466,7 +461,7 @@ CInputPin::KsNotifyError(
//-------------------------------------------------------------------
// IKsPropertySet
// IKsControl
//
HRESULT
STDMETHODCALLTYPE
@@ -477,6 +472,7 @@ CInputPin::KsProperty(
ULONG DataLength,
ULONG* BytesReturned)
{
assert(m_hPin != 0);
return KsSynchronousDeviceControl(m_hPin, IOCTL_KS_PROPERTY, (PVOID)Property, PropertyLength, (PVOID)PropertyData, DataLength, BytesReturned);
}
@@ -489,6 +485,7 @@ CInputPin::KsMethod(
ULONG DataLength,
ULONG* BytesReturned)
{
assert(m_hPin != 0);
return KsSynchronousDeviceControl(m_hPin, IOCTL_KS_METHOD, (PVOID)Method, MethodLength, (PVOID)MethodData, DataLength, BytesReturned);
}
@@ -501,6 +498,8 @@ CInputPin::KsEvent(
ULONG DataLength,
ULONG* BytesReturned)
{
assert(m_hPin != 0);
if (EventLength)
return KsSynchronousDeviceControl(m_hPin, IOCTL_KS_ENABLE_EVENT, (PVOID)Event, EventLength, (PVOID)EventData, DataLength, BytesReturned);
else
@@ -619,10 +618,7 @@ HANDLE
STDMETHODCALLTYPE
CInputPin::KsGetObjectHandle()
{
OutputDebugStringW(L"CInputPin::KsGetObjectHandle CALLED\n");
//FIXME
// return pin handle
assert(m_hPin);
return m_hPin;
}
@@ -645,7 +641,6 @@ CInputPin::ReceiveConnection(IPin *pConnector, const AM_MEDIA_TYPE *pmt)
if (m_Pin)
{
OutputDebugStringW(L"CInputPin::ReceiveConnection already connected\n");
return VFW_E_ALREADY_CONNECTED;
}
@@ -657,19 +652,36 @@ CInputPin::ReceiveConnection(IPin *pConnector, const AM_MEDIA_TYPE *pmt)
if (FAILED(CheckFormat(pmt)))
return hr;
hr = CreatePin(pmt);
if (FAILED(hr))
{
return hr;
}
//FIXME create pin
m_Pin = pConnector;
m_Pin->AddRef();
OutputDebugStringW(L"CInputPin::ReceiveConnection NotImplemented\n");
return S_OK;
}
HRESULT
STDMETHODCALLTYPE
CInputPin::Disconnect( void)
{
OutputDebugStringW(L"CInputPin::Disconnect NotImplemented\n");
return E_NOTIMPL;
if (!m_Pin)
{
// pin was not connected
return S_FALSE;
}
//FIXME
//check if filter is active
m_Pin->Release();
m_Pin = NULL;
OutputDebugStringW(L"CInputPin::Disconnect\n");
return S_OK;
}
HRESULT
STDMETHODCALLTYPE
@@ -693,6 +705,9 @@ HRESULT
STDMETHODCALLTYPE
CInputPin::ConnectionMediaType(AM_MEDIA_TYPE *pmt)
{
if (!m_Pin)
return VFW_E_NOT_CONNECTED;
OutputDebugStringW(L"CInputPin::ConnectionMediaType NotImplemented\n");
return E_NOTIMPL;
}
@@ -742,8 +757,41 @@ HRESULT
STDMETHODCALLTYPE
CInputPin::EnumMediaTypes(IEnumMediaTypes **ppEnum)
{
return CEnumMediaTypes_fnConstructor(0, NULL, IID_IEnumMediaTypes, (void**)ppEnum);
HRESULT hr;
ULONG MediaTypeCount = 0, Index;
AM_MEDIA_TYPE * MediaTypes;
// query media type count
hr = KsGetMediaTypeCount(m_hFilter, m_PinId, &MediaTypeCount);
if (FAILED(hr) || !MediaTypeCount)
return hr;
// allocate media types
MediaTypes = (AM_MEDIA_TYPE*)CoTaskMemAlloc(sizeof(AM_MEDIA_TYPE) * MediaTypeCount);
if (!MediaTypes)
{
// not enough memory
return E_OUTOFMEMORY;
}
// zero media types
ZeroMemory(MediaTypes, sizeof(AM_MEDIA_TYPE) * MediaTypeCount);
for(Index = 0; Index < MediaTypeCount; Index++)
{
// get media type
hr = KsGetMediaType(Index, &MediaTypes[Index], m_hFilter, m_PinId);
if (FAILED(hr))
{
// failed
CoTaskMemFree(MediaTypes);
return hr;
}
}
return CEnumMediaTypes_fnConstructor(MediaTypeCount, MediaTypes, IID_IEnumMediaTypes, (void**)ppEnum);
}
HRESULT
STDMETHODCALLTYPE
CInputPin::QueryInternalConnections(IPin **apPin, ULONG *nPin)
@@ -799,6 +847,9 @@ CInputPin::CheckFormat(
Property.PinId = m_PinId;
Property.Reserved = 0;
if (!pmt)
return E_POINTER;
// query for size of dataranges
hr = KsSynchronousDeviceControl(m_hFilter, IOCTL_KS_PROPERTY, (PVOID)&Property, sizeof(KSP_PIN), NULL, 0, &BytesReturned);
@@ -842,13 +893,12 @@ CInputPin::CheckFormat(
HRESULT
STDMETHODCALLTYPE
CInputPin::CreatePin()
CInputPin::CreatePin(
const AM_MEDIA_TYPE *pmt)
{
PKSMULTIPLE_ITEM MediumList;
PKSMULTIPLE_ITEM InterfaceList;
PKSMULTIPLE_ITEM DataFormatList = NULL;
PKSPIN_MEDIUM Medium;
PKSDATAFORMAT DataFormat;
PKSPIN_INTERFACE Interface;
HRESULT hr;
@@ -866,19 +916,6 @@ CInputPin::CreatePin()
return hr;
}
// get data ranges
hr = KsGetMultiplePinFactoryItems(m_hFilter, m_PinId, KSPROPERTY_PIN_DATARANGES, (PVOID*)&DataFormatList);
if (FAILED(hr) || DataFormatList->Count == 0)
{
// failed
CoTaskMemFree(MediumList);
CoTaskMemFree(InterfaceList);
if (DataFormatList)
CoTaskMemFree(DataFormatList);
return hr;
}
if (MediumList->Count)
{
//use first available medium
@@ -901,15 +938,10 @@ CInputPin::CreatePin()
Interface = &StandardPinInterface;
}
//FIXME determine format
// use first available format
DataFormat = (PKSDATAFORMAT) (DataFormatList + 1);
// now create pin
hr = CreatePinHandle(Medium, Interface, DataFormat);
hr = CreatePinHandle(Medium, Interface, pmt);
// free medium / interface / dataformat
CoTaskMemFree(DataFormatList);
CoTaskMemFree(MediumList);
CoTaskMemFree(InterfaceList);
@@ -921,14 +953,15 @@ STDMETHODCALLTYPE
CInputPin::CreatePinHandle(
PKSPIN_MEDIUM Medium,
PKSPIN_INTERFACE Interface,
PKSDATAFORMAT DataFormat)
const AM_MEDIA_TYPE *pmt)
{
PKSPIN_CONNECT PinConnect;
PKSDATAFORMAT DataFormat;
ULONG Length;
HRESULT hr;
// calc format size
Length = sizeof(KSPIN_CONNECT) + DataFormat->FormatSize;
Length = sizeof(KSPIN_CONNECT) + sizeof(KSDATAFORMAT) + pmt->cbFormat;
// allocate pin connect
PinConnect = (PKSPIN_CONNECT)CoTaskMemAlloc(Length);
@@ -945,7 +978,24 @@ CInputPin::CreatePinHandle(
PinConnect->PinToHandle = NULL;
PinConnect->Priority.PriorityClass = KSPRIORITY_NORMAL;
PinConnect->Priority.PrioritySubClass = KSPRIORITY_NORMAL;
CopyMemory((PinConnect + 1), DataFormat, DataFormat->FormatSize);
// get dataformat offset
DataFormat = (PKSDATAFORMAT)(PinConnect + 1);
// copy data format
DataFormat->FormatSize = sizeof(KSDATAFORMAT) + pmt->cbFormat;
DataFormat->Flags = 0;
DataFormat->SampleSize = pmt->lSampleSize;
DataFormat->Reserved = 0;
CopyMemory(&DataFormat->MajorFormat, &pmt->majortype, sizeof(GUID));
CopyMemory(&DataFormat->SubFormat, &pmt->subtype, sizeof(GUID));
CopyMemory(&DataFormat->Specifier, &pmt->formattype, sizeof(GUID));
if (pmt->cbFormat)
{
// copy extended format
CopyMemory((DataFormat + 1), pmt->pbFormat, pmt->cbFormat);
}
// create pin
hr = KsCreatePin(m_hFilter, PinConnect, GENERIC_WRITE, &m_hPin);
+79 -4
View File
@@ -10,14 +10,18 @@
#include "precomp.h"
const GUID KSPROPSETID_Pin = {0x8C134960, 0x51AD, 0x11CF, {0x87, 0x8A, 0x94, 0xF8, 0x01, 0xC1, 0x00, 0x00}};
const GUID KSINTERFACESETID_Standard = {STATIC_KSINTERFACESETID_Standard};
const GUID CLSID_KsClockForwarder = {0x877e4351, 0x6fea, 0x11d0, {0xb8, 0x63, 0x00, 0xaa, 0x00, 0xa2, 0x16, 0xa1}};
const GUID CLSID_KsQualityForwarder = {0xe05592e4, 0xc0b5, 0x11d0, {0xa4, 0x39, 0x00, 0xa0, 0xc9, 0x22, 0x31, 0x96}};
const GUID CLSID_KsIBasicAudioInterfaceHandler = {0xb9f8ac3e, 0x0f71, 0x11d2, {0xb7, 0x2c, 0x00, 0xc0, 0x4f, 0xb6, 0xbd, 0x3d}};
const GUID CLSID_Proxy = {0x17CCA71B, 0xECD7, 0x11D0, {0xB9, 0x08, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}};
#ifndef _MSC_VER
const GUID KSPROPSETID_Pin = {0x8C134960, 0x51AD, 0x11CF, {0x87, 0x8A, 0x94, 0xF8, 0x01, 0xC1, 0x00, 0x00}};
const GUID KSINTERFACESETID_Standard = {STATIC_KSINTERFACESETID_Standard};
const GUID CLSID_Proxy = {0x17CCA71B, 0xECD7, 0x11D0, {0xB9, 0x08, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}};
#endif
static INTERFACE_TABLE InterfaceTable[] =
{
{&MEDIATYPE_Audio, CKsDataTypeHandler_Constructor},
@@ -258,7 +262,78 @@ KsGetMediaType(
HANDLE FilterHandle,
ULONG PinFactoryId)
{
//UNIMPLEMENTED
HRESULT hr;
PKSMULTIPLE_ITEM ItemList;
int i = 0;
PKSDATAFORMAT DataFormat;
if (Position < 0)
return E_INVALIDARG;
// get current supported ranges
hr = KsGetMultiplePinFactoryItems(FilterHandle, PinFactoryId, KSPROPERTY_PIN_CONSTRAINEDDATARANGES, (PVOID*)&ItemList);
if (FAILED(hr))
{
// get standard dataranges
hr = KsGetMultiplePinFactoryItems(FilterHandle, PinFactoryId, KSPROPERTY_PIN_DATARANGES, (PVOID*)&ItemList);
//check for success
if (FAILED(hr))
return hr;
}
if ((ULONG)Position >= ItemList->Count)
{
// out of bounds
CoTaskMemFree(ItemList);
return MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_NO_MORE_ITEMS);
}
// goto first datarange
DataFormat = (PKSDATAFORMAT)(ItemList + 1);
while(i != Position)
{
// goto next format;
DataFormat = (PKSDATAFORMAT)(ULONG_PTR)(DataFormat + DataFormat->FormatSize);
i++;
}
DataFormat->FormatSize -= sizeof(KSDATAFORMAT);
if (DataFormat->FormatSize)
{
// copy extra format buffer
AmMediaType->pbFormat = (BYTE*)CoTaskMemAlloc(DataFormat->FormatSize);
if (!AmMediaType->pbFormat)
{
// not enough memory
CoTaskMemFree(ItemList);
return E_OUTOFMEMORY;
}
// copy format buffer
CopyMemory(AmMediaType->pbFormat, (DataFormat + 1), DataFormat->FormatSize);
AmMediaType->cbFormat = DataFormat->FormatSize;
}
else
{
// no format buffer
AmMediaType->pbFormat = NULL;
AmMediaType->cbFormat = 0;
}
// copy type info
CopyMemory(&AmMediaType->majortype, &DataFormat->MajorFormat, sizeof(GUID));
CopyMemory(&AmMediaType->subtype, &DataFormat->SubFormat, sizeof(GUID));
CopyMemory(&AmMediaType->formattype, &DataFormat->Specifier, sizeof(GUID));
AmMediaType->bTemporalCompression = FALSE; //FIXME verify
AmMediaType->pUnk = NULL; //FIXME
AmMediaType->lSampleSize = DataFormat->SampleSize;
AmMediaType->bFixedSizeSamples = (AmMediaType->lSampleSize) ? TRUE : FALSE;
// free dataformat list
CoTaskMemFree(ItemList);
return NOERROR;
}
+95 -6
View File
@@ -1,9 +1,98 @@
// Microsoft Visual C++ generated resource script.
//
//#include "resource."
#define REACTOS_VERSION_DLL
#define REACTOS_STR_FILE_DESCRIPTION "ReactOS WDM Streaming ActiveMovie Proxy\0"
#define REACTOS_STR_INTERNAL_NAME "ksproxy\0"
#define REACTOS_STR_ORIGINAL_FILENAME "ksproxy.ax\0"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
#include <reactos/reactx.h>
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// Deutsch (Deutschland) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)
#ifdef _WIN32
LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.\0"
END
3 TEXTINCLUDE
BEGIN
"\r\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""afxres.h""\r\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 5,3,2600,3264
PRODUCTVERSION 5,3,2600,3264
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040704b0"
BEGIN
VALUE "CompanyName", "ReactOS WDM Streaming ActiveMovie Proxy"
VALUE "FileDescription", "ReactOS WDM Streaming ActiveMovie Proxy"
VALUE "FileVersion", "5, 3, 2600, 3264"
VALUE "InternalName", "ksproxy"
VALUE "LegalCopyright", "Copyright (C) 2010"
VALUE "OriginalFilename", "ksproxy.dll"
VALUE "ProductName", "ReactOS WDM Streaming ActiveMovie Proxy"
VALUE "ProductVersion", "5, 3, 2600, 3264"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x407, 1200
END
END
#endif // Deutsch (Deutschland) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
#include <reactos/version.rc>
+429 -23
View File
@@ -8,17 +8,21 @@
*/
#include "precomp.h"
#ifndef _MSC_VER
const GUID IID_IKsPinFactory = {0xCD5EBE6BL, 0x8B6E, 0x11D1, {0x8A, 0xE0, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}};
#endif
class COutputPin : public IPin,
public IKsObject
public IKsObject,
public IKsPropertySet,
public IStreamBuilder,
public IKsPinFactory,
public ISpecifyPropertyPages,
// public IKsPinPipe,
public IKsControl
/*
public IQualityControl,
public IKsPinEx,
public IKsPinPipe,
public ISpecifyPropertyPages,
public IStreamBuilder,
public IKsPropertySet,
public IKsPinFactory,
public IKsControl,
public IKsAggregateControl
public IMediaSeeking,
public IAMStreamConfig,
@@ -38,12 +42,25 @@ public:
InterlockedDecrement(&m_Ref);
if (!m_Ref)
{
delete this;
//delete this;
return 0;
}
return m_Ref;
}
//IKsPinPipe
HRESULT STDMETHODCALLTYPE KsGetPinFramingCache(PKSALLOCATOR_FRAMING_EX *FramingEx, PFRAMING_PROP FramingProp, FRAMING_CACHE_OPS Option);
HRESULT STDMETHODCALLTYPE KsSetPinFramingCache(PKSALLOCATOR_FRAMING_EX FramingEx, PFRAMING_PROP FramingProp, FRAMING_CACHE_OPS Option);
IPin* STDMETHODCALLTYPE KsGetConnectedPin();
IKsAllocatorEx* STDMETHODCALLTYPE KsGetPipe(KSPEEKOPERATION Operation);
HRESULT STDMETHODCALLTYPE KsSetPipe(IKsAllocatorEx *KsAllocator);
ULONG STDMETHODCALLTYPE KsGetPipeAllocatorFlag();
HRESULT STDMETHODCALLTYPE KsSetPipeAllocatorFlag(ULONG Flag);
GUID STDMETHODCALLTYPE KsGetPinBusCache();
HRESULT STDMETHODCALLTYPE KsSetPinBusCache(GUID Bus);
PWCHAR STDMETHODCALLTYPE KsGetPinName();
PWCHAR STDMETHODCALLTYPE KsGetFilterName();
//IPin methods
HRESULT STDMETHODCALLTYPE Connect(IPin *pReceivePin, const AM_MEDIA_TYPE *pmt);
HRESULT STDMETHODCALLTYPE ReceiveConnection(IPin *pConnector, const AM_MEDIA_TYPE *pmt);
@@ -61,17 +78,58 @@ public:
HRESULT STDMETHODCALLTYPE EndFlush();
HRESULT STDMETHODCALLTYPE NewSegment(REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate);
// ISpecifyPropertyPages
HRESULT STDMETHODCALLTYPE GetPages(CAUUID *pPages);
//IKsObject methods
HANDLE STDMETHODCALLTYPE KsGetObjectHandle();
//IKsPropertySet
HRESULT STDMETHODCALLTYPE Set(REFGUID guidPropSet, DWORD dwPropID, LPVOID pInstanceData, DWORD cbInstanceData, LPVOID pPropData, DWORD cbPropData);
HRESULT STDMETHODCALLTYPE Get(REFGUID guidPropSet, DWORD dwPropID, LPVOID pInstanceData, DWORD cbInstanceData, LPVOID pPropData, DWORD cbPropData, DWORD *pcbReturned);
HRESULT STDMETHODCALLTYPE QuerySupported(REFGUID guidPropSet, DWORD dwPropID, DWORD *pTypeSupport);
COutputPin(IBaseFilter * ParentFilter, LPCWSTR PinName) : m_Ref(0), m_ParentFilter(ParentFilter), m_PinName(PinName){};
virtual ~COutputPin(){};
//IKsControl
HRESULT STDMETHODCALLTYPE KsProperty(PKSPROPERTY Property, ULONG PropertyLength, LPVOID PropertyData, ULONG DataLength, ULONG* BytesReturned);
HRESULT STDMETHODCALLTYPE KsMethod(PKSMETHOD Method, ULONG MethodLength, LPVOID MethodData, ULONG DataLength, ULONG* BytesReturned);
HRESULT STDMETHODCALLTYPE KsEvent(PKSEVENT Event, ULONG EventLength, LPVOID EventData, ULONG DataLength, ULONG* BytesReturned);
//IStreamBuilder
HRESULT STDMETHODCALLTYPE Render(IPin *ppinOut, IGraphBuilder *pGraph);
HRESULT STDMETHODCALLTYPE Backout(IPin *ppinOut, IGraphBuilder *pGraph);
//IKsPinFactory
HRESULT STDMETHODCALLTYPE KsPinFactory(ULONG* PinFactory);
COutputPin(IBaseFilter * ParentFilter, LPCWSTR PinName, ULONG PinId);
virtual ~COutputPin();
protected:
LONG m_Ref;
IBaseFilter * m_ParentFilter;
LPCWSTR m_PinName;
HANDLE m_hPin;
ULONG m_PinId;
IKsObject * m_KsObjectParent;
IPin * m_Pin;
};
COutputPin::~COutputPin()
{
if (m_KsObjectParent)
m_KsObjectParent->Release();
}
COutputPin::COutputPin(
IBaseFilter * ParentFilter,
LPCWSTR PinName,
ULONG PinId) : m_Ref(0), m_ParentFilter(ParentFilter), m_PinName(PinName), m_hPin(0), m_PinId(PinId), m_KsObjectParent(0), m_Pin(0)
{
HRESULT hr;
hr = m_ParentFilter->QueryInterface(IID_IKsObject, (LPVOID*)&m_KsObjectParent);
assert(hr == S_OK);
};
HRESULT
@@ -94,6 +152,41 @@ COutputPin::QueryInterface(
reinterpret_cast<IKsObject*>(*Output)->AddRef();
return NOERROR;
}
else if (IsEqualGUID(refiid, IID_IKsPropertySet))
{
*Output = (IKsPropertySet*)(this);
reinterpret_cast<IKsPropertySet*>(*Output)->AddRef();
return NOERROR;
}
else if (IsEqualGUID(refiid, IID_IKsControl))
{
*Output = (IKsControl*)(this);
reinterpret_cast<IKsControl*>(*Output)->AddRef();
return NOERROR;
}
else if (IsEqualGUID(refiid, IID_IStreamBuilder))
{
*Output = (IStreamBuilder*)(this);
reinterpret_cast<IStreamBuilder*>(*Output)->AddRef();
return NOERROR;
}
else if (IsEqualGUID(refiid, IID_IKsPinFactory))
{
*Output = (IKsPinFactory*)(this);
reinterpret_cast<IKsPinFactory*>(*Output)->AddRef();
return NOERROR;
}
else if (IsEqualGUID(refiid, IID_ISpecifyPropertyPages))
{
*Output = (ISpecifyPropertyPages*)(this);
reinterpret_cast<ISpecifyPropertyPages*>(*Output)->AddRef();
return NOERROR;
}
else if (IsEqualGUID(refiid, IID_IBaseFilter))
{
OutputDebugStringW(L"COutputPin::QueryInterface query IID_IBaseFilter\n");
DebugBreak();
}
WCHAR Buffer[MAX_PATH];
LPOLESTR lpstr;
@@ -105,6 +198,60 @@ COutputPin::QueryInterface(
return E_NOINTERFACE;
}
//-------------------------------------------------------------------
// ISpecifyPropertyPages
//
HRESULT
STDMETHODCALLTYPE
COutputPin::GetPages(CAUUID *pPages)
{
OutputDebugStringW(L"COutputPin::GetPages NotImplemented\n");
if (!pPages)
return E_POINTER;
pPages->cElems = 0;
pPages->pElems = NULL;
return S_OK;
}
//-------------------------------------------------------------------
// IKsPinFactory
//
HRESULT
STDMETHODCALLTYPE
COutputPin::KsPinFactory(
ULONG* PinFactory)
{
*PinFactory = m_PinId;
return S_OK;
}
//-------------------------------------------------------------------
// IStreamBuilder
//
HRESULT
STDMETHODCALLTYPE
COutputPin::Render(
IPin *ppinOut,
IGraphBuilder *pGraph)
{
return S_OK;
}
HRESULT
STDMETHODCALLTYPE
COutputPin::Backout(
IPin *ppinOut,
IGraphBuilder *pGraph)
{
return S_OK;
}
//-------------------------------------------------------------------
// IKsObject
//
@@ -112,13 +259,161 @@ HANDLE
STDMETHODCALLTYPE
COutputPin::KsGetObjectHandle()
{
OutputDebugStringW(L"COutputPin::KsGetObjectHandle CALLED\n");
//FIXME
// return pin handle
return NULL;
assert(m_hPin);
return m_hPin;
}
//-------------------------------------------------------------------
// IKsControl
//
HRESULT
STDMETHODCALLTYPE
COutputPin::KsProperty(
PKSPROPERTY Property,
ULONG PropertyLength,
LPVOID PropertyData,
ULONG DataLength,
ULONG* BytesReturned)
{
assert(m_hPin != 0);
return KsSynchronousDeviceControl(m_hPin, IOCTL_KS_PROPERTY, (PVOID)Property, PropertyLength, (PVOID)PropertyData, DataLength, BytesReturned);
}
HRESULT
STDMETHODCALLTYPE
COutputPin::KsMethod(
PKSMETHOD Method,
ULONG MethodLength,
LPVOID MethodData,
ULONG DataLength,
ULONG* BytesReturned)
{
assert(m_hPin != 0);
return KsSynchronousDeviceControl(m_hPin, IOCTL_KS_METHOD, (PVOID)Method, MethodLength, (PVOID)MethodData, DataLength, BytesReturned);
}
HRESULT
STDMETHODCALLTYPE
COutputPin::KsEvent(
PKSEVENT Event,
ULONG EventLength,
LPVOID EventData,
ULONG DataLength,
ULONG* BytesReturned)
{
assert(m_hPin != 0);
if (EventLength)
return KsSynchronousDeviceControl(m_hPin, IOCTL_KS_ENABLE_EVENT, (PVOID)Event, EventLength, (PVOID)EventData, DataLength, BytesReturned);
else
return KsSynchronousDeviceControl(m_hPin, IOCTL_KS_DISABLE_EVENT, (PVOID)Event, EventLength, NULL, 0, BytesReturned);
}
//-------------------------------------------------------------------
// IKsPropertySet
//
HRESULT
STDMETHODCALLTYPE
COutputPin::Set(
REFGUID guidPropSet,
DWORD dwPropID,
LPVOID pInstanceData,
DWORD cbInstanceData,
LPVOID pPropData,
DWORD cbPropData)
{
ULONG BytesReturned;
if (cbInstanceData)
{
PKSPROPERTY Property = (PKSPROPERTY)CoTaskMemAlloc(sizeof(KSPROPERTY) + cbInstanceData);
if (!Property)
return E_OUTOFMEMORY;
Property->Set = guidPropSet;
Property->Id = dwPropID;
Property->Flags = KSPROPERTY_TYPE_SET;
CopyMemory((Property+1), pInstanceData, cbInstanceData);
HRESULT hr = KsProperty(Property, sizeof(KSPROPERTY) + cbInstanceData, pPropData, cbPropData, &BytesReturned);
CoTaskMemFree(Property);
return hr;
}
else
{
KSPROPERTY Property;
Property.Set = guidPropSet;
Property.Id = dwPropID;
Property.Flags = KSPROPERTY_TYPE_SET;
HRESULT hr = KsProperty(&Property, sizeof(KSPROPERTY), pPropData, cbPropData, &BytesReturned);
return hr;
}
}
HRESULT
STDMETHODCALLTYPE
COutputPin::Get(
REFGUID guidPropSet,
DWORD dwPropID,
LPVOID pInstanceData,
DWORD cbInstanceData,
LPVOID pPropData,
DWORD cbPropData,
DWORD *pcbReturned)
{
ULONG BytesReturned;
if (cbInstanceData)
{
PKSPROPERTY Property = (PKSPROPERTY)CoTaskMemAlloc(sizeof(KSPROPERTY) + cbInstanceData);
if (!Property)
return E_OUTOFMEMORY;
Property->Set = guidPropSet;
Property->Id = dwPropID;
Property->Flags = KSPROPERTY_TYPE_GET;
CopyMemory((Property+1), pInstanceData, cbInstanceData);
HRESULT hr = KsProperty(Property, sizeof(KSPROPERTY) + cbInstanceData, pPropData, cbPropData, &BytesReturned);
CoTaskMemFree(Property);
return hr;
}
else
{
KSPROPERTY Property;
Property.Set = guidPropSet;
Property.Id = dwPropID;
Property.Flags = KSPROPERTY_TYPE_GET;
HRESULT hr = KsProperty(&Property, sizeof(KSPROPERTY), pPropData, cbPropData, &BytesReturned);
return hr;
}
}
HRESULT
STDMETHODCALLTYPE
COutputPin::QuerySupported(
REFGUID guidPropSet,
DWORD dwPropID,
DWORD *pTypeSupport)
{
KSPROPERTY Property;
ULONG BytesReturned;
Property.Set = guidPropSet;
Property.Id = dwPropID;
Property.Flags = KSPROPERTY_TYPE_SETSUPPORT;
return KsProperty(&Property, sizeof(KSPROPERTY), pTypeSupport, sizeof(DWORD), &BytesReturned);
}
//-------------------------------------------------------------------
// IPin interface
//
@@ -126,30 +421,92 @@ HRESULT
STDMETHODCALLTYPE
COutputPin::Connect(IPin *pReceivePin, const AM_MEDIA_TYPE *pmt)
{
AM_MEDIA_TYPE MediaType;
HRESULT hr;
HANDLE hFilter;
OutputDebugStringW(L"COutputPin::Connect called\n");
return E_NOTIMPL;
if (pmt)
{
hr = pReceivePin->QueryAccept(pmt);
if (FAILED(hr))
return hr;
}
else
{
// get parent filter handle
hFilter = m_KsObjectParent->KsGetObjectHandle();
// get media type count
ZeroMemory(&MediaType, sizeof(AM_MEDIA_TYPE));
hr = KsGetMediaType(0, &MediaType, hFilter, m_PinId);
if (FAILED(hr))
return hr;
// query accept
hr = pReceivePin->QueryAccept(&MediaType);
if (FAILED(hr))
return hr;
pmt = &MediaType;
}
//FIXME create pin handle
// receive connection;
hr = pReceivePin->ReceiveConnection((IPin*)this, pmt);
if (SUCCEEDED(hr))
{
// increment reference count
pReceivePin->AddRef();
m_Pin = pReceivePin;
OutputDebugStringW(L"COutputPin::Connect success\n");
}
return hr;
}
HRESULT
STDMETHODCALLTYPE
COutputPin::ReceiveConnection(IPin *pConnector, const AM_MEDIA_TYPE *pmt)
{
OutputDebugStringW(L"COutputPin::ReceiveConnection called\n");
return E_NOTIMPL;
return E_UNEXPECTED;
}
HRESULT
STDMETHODCALLTYPE
COutputPin::Disconnect( void)
{
OutputDebugStringW(L"COutputPin::Disconnect called\n");
return E_NOTIMPL;
if (!m_Pin)
{
// pin was not connected
return S_FALSE;
}
//FIXME
//check if filter is active
m_Pin->Release();
m_Pin = NULL;
OutputDebugStringW(L"COutputPin::Disconnect\n");
return S_OK;
}
HRESULT
STDMETHODCALLTYPE
COutputPin::ConnectedTo(IPin **pPin)
{
if (!pPin)
return E_POINTER;
if (m_Pin)
{
// increment reference count
m_Pin->AddRef();
*pPin = m_Pin;
return S_OK;
}
*pPin = NULL;
OutputDebugStringW(L"COutputPin::ConnectedTo called\n");
return VFW_E_NOT_CONNECTED;
}
HRESULT
@@ -204,8 +561,56 @@ HRESULT
STDMETHODCALLTYPE
COutputPin::EnumMediaTypes(IEnumMediaTypes **ppEnum)
{
HRESULT hr;
ULONG MediaTypeCount = 0, Index;
AM_MEDIA_TYPE * MediaTypes;
HANDLE hFilter;
OutputDebugStringW(L"COutputPin::EnumMediaTypes called\n");
return E_NOTIMPL;
if (!m_KsObjectParent)
{
// no interface
return E_NOINTERFACE;
}
// get parent filter handle
hFilter = m_KsObjectParent->KsGetObjectHandle();
// query media type count
hr = KsGetMediaTypeCount(hFilter, m_PinId, &MediaTypeCount);
if (FAILED(hr) || !MediaTypeCount)
{
OutputDebugStringW(L"COutputPin::EnumMediaTypes failed1\n");
return hr;
}
// allocate media types
MediaTypes = (AM_MEDIA_TYPE*)CoTaskMemAlloc(sizeof(AM_MEDIA_TYPE) * MediaTypeCount);
if (!MediaTypes)
{
// not enough memory
OutputDebugStringW(L"COutputPin::EnumMediaTypes CoTaskMemAlloc\n");
return E_OUTOFMEMORY;
}
// zero media types
ZeroMemory(MediaTypes, sizeof(AM_MEDIA_TYPE) * MediaTypeCount);
for(Index = 0; Index < MediaTypeCount; Index++)
{
// get media type
hr = KsGetMediaType(Index, &MediaTypes[Index], hFilter, m_PinId);
if (FAILED(hr))
{
// failed
CoTaskMemFree(MediaTypes);
OutputDebugStringW(L"COutputPin::EnumMediaTypes failed2\n");
return hr;
}
}
return CEnumMediaTypes_fnConstructor(MediaTypeCount, MediaTypes, IID_IEnumMediaTypes, (void**)ppEnum);
}
HRESULT
STDMETHODCALLTYPE
@@ -248,10 +653,11 @@ WINAPI
COutputPin_Constructor(
IBaseFilter * ParentFilter,
LPCWSTR PinName,
ULONG PinId,
REFIID riid,
LPVOID * ppv)
{
COutputPin * handler = new COutputPin(ParentFilter, PinName);
COutputPin * handler = new COutputPin(ParentFilter, PinName, PinId);
if (!handler)
return E_OUTOFMEMORY;
+3 -1
View File
@@ -18,6 +18,7 @@
#include <setupapi.h>
#include <stdio.h>
#include <vector>
#include <assert.h>
//#include <debug.h>
typedef HRESULT (CALLBACK *LPFNCREATEINSTANCE)(IUnknown* pUnkOuter, REFIID riid, LPVOID* ppvObject);
@@ -117,6 +118,7 @@ WINAPI
COutputPin_Constructor(
IBaseFilter * ParentFilter,
LPCWSTR PinName,
ULONG PinId,
REFIID riid,
LPVOID * ppv);
@@ -137,4 +139,4 @@ CEnumMediaTypes_fnConstructor(
REFIID riid,
LPVOID * ppv);
extern const GUID IID_IKsObject;
File diff suppressed because it is too large Load Diff
+4
View File
@@ -8,7 +8,11 @@
*/
#include "precomp.h"
#ifndef _MSC_VER
const GUID KSCATEGORY_QUALITY = {0x97EBAACB, 0x95BD, 0x11D0, {0xA3, 0xEA, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}};
#endif
#define IID_IKsQualityForwarder KSCATEGORY_QUALITY
class CKsQualityForwarder : public IKsQualityForwarder
{
-1
View File
@@ -52,4 +52,3 @@ STRINGTABLE DISCARDABLE
IDS_AVIFILETYPE "Wine AVI-Standard-Dateibehandlungsroutine"
IDS_UNCOMPRESSED "Unkomprimiert"
}
#pragma code_page(default)
-1
View File
@@ -57,4 +57,3 @@ STRINGTABLE DISCARDABLE
IDS_AVIFILETYPE "Gestionnaire de fichiers AVI par défaut de Wine"
IDS_UNCOMPRESSED "non compressé"
}
#pragma code_page(default)
-2
View File
@@ -53,5 +53,3 @@ STRINGTABLE DISCARDABLE
IDS_AVIFILETYPE "Wine AVI-default-filehandler"
IDS_UNCOMPRESSED "未圧縮"
}
#pragma code_page(default)
-1
View File
@@ -53,4 +53,3 @@ STRINGTABLE DISCARDABLE
IDS_AVIFILETYPE "Wine numatyta-AVI-doroklė"
IDS_UNCOMPRESSED "neglaudintas"
}
#pragma code_page(default)
-1
View File
@@ -55,4 +55,3 @@ STRINGTABLE DISCARDABLE
IDS_AVIFILETYPE "Tratare implicită Wine pentru AVI"
IDS_UNCOMPRESSED "necomprimat"
}
#pragma code_page(default)
-1
View File
@@ -55,4 +55,3 @@ STRINGTABLE DISCARDABLE
IDS_AVIFILETYPE "Обработчик по умолчанию avi-файлов в Wine"
IDS_UNCOMPRESSED "без сжатия"
}
#pragma code_page(default)
-2
View File
@@ -52,5 +52,3 @@ STRINGTABLE DISCARDABLE
IDS_AVIFILETYPE "Wine privzeti-upravljalec-AVI-datotek"
IDS_UNCOMPRESSED "nestisnjeno"
}
#pragma code_page(default)
+2
View File
@@ -16,6 +16,8 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "avifile_private.h"
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
IDD_SAVEOPTIONS DIALOG FIXED IMPURE 43, 37, 226, 82
+1
View File
@@ -16,6 +16,7 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "avifile_private.h"
LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
+2 -2
View File
@@ -18,6 +18,8 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "avifile_private.h"
/* Chinese text is encoded in UTF-8 */
#pragma code_page(65001)
@@ -86,5 +88,3 @@ STRINGTABLE DISCARDABLE
IDS_AVIFILETYPE "Wine AVI-默認處理器"
IDS_UNCOMPRESSED "未壓縮"
}
#pragma code_page(default)
+9 -7
View File
@@ -40,23 +40,25 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
*/
#include "avifile_Cs.rc"
#include "avifile_Da.rc"
#include "avifile_De.rc"
#include "avifile_En.rc"
#include "avifile_Es.rc"
#include "avifile_Fr.rc"
#include "avifile_Hu.rc"
#include "avifile_It.rc"
#include "avifile_Ja.rc"
#include "avifile_Ko.rc"
#include "avifile_Lt.rc"
#include "avifile_Nl.rc"
#include "avifile_No.rc"
#include "avifile_Pl.rc"
#include "avifile_Pt.rc"
#include "avifile_Ro.rc"
#include "avifile_Ru.rc"
#include "avifile_Si.rc"
#include "avifile_Sv.rc"
#include "avifile_Tr.rc"
#include "avifile_Uk.rc"
/* UTF-8 */
#include "avifile_De.rc"
#include "avifile_Fr.rc"
#include "avifile_Ja.rc"
#include "avifile_Lt.rc"
#include "avifile_Ro.rc"
#include "avifile_Ru.rc"
#include "avifile_Si.rc"
#include "avifile_Zh.rc"
-47
View File
@@ -184,51 +184,4 @@ extern LPVOID (WINAPI *COMDLG32_SHAlloc)(DWORD);
extern DWORD (WINAPI *COMDLG32_SHFree)(LPVOID);
extern BOOL (WINAPI *COMDLG32_SHGetFolderPathW)(HWND,int,HANDLE,DWORD,LPWSTR);
/*
* Internal Functions
* Do NOT Export to other programs and dlls
*/
BOOL CC_HookCallChk( const CHOOSECOLORW *lpcc );
int CC_MouseCheckResultWindow( HWND hDlg, LPARAM lParam );
LRESULT CC_WMLButtonDown( HWND hDlg, WPARAM wParam, LPARAM lParam );
LRESULT CC_WMLButtonUp( HWND hDlg, WPARAM wParam, LPARAM lParam );
LRESULT CC_WMMouseMove( HWND hDlg, LPARAM lParam );
LRESULT CC_WMPaint( HWND hDlg, WPARAM wParam, LPARAM lParam );
void CC_SwitchToFullSize( HWND hDlg, COLORREF result, LPCRECT lprect );
void CC_PaintSelectedColor( HWND hDlg, COLORREF cr );
int CC_RGBtoHSL(char c, int r, int g, int b);
void CC_PaintCross( HWND hDlg, int x, int y);
void CC_PaintTriangle( HWND hDlg, int y);
int CC_CheckDigitsInEdit( HWND hwnd, int maxval );
void CC_EditSetHSL( HWND hDlg, int h, int s, int l );
int CC_HSLtoRGB(char c, int hue, int sat, int lum);
void CC_EditSetRGB( HWND hDlg, COLORREF cr );
void CC_PaintUserColorArray( HWND hDlg, int rows, int cols, const COLORREF* lpcr );
typedef struct
{
HWND hWnd1;
HWND hWnd2;
LPCHOOSEFONTW lpcf32w;
int added;
} CFn_ENUMSTRUCT, *LPCFn_ENUMSTRUCT;
INT AddFontFamily(const ENUMLOGFONTEXW *lpElfex, const NEWTEXTMETRICEXW *lpNTM,
UINT nFontType, const CHOOSEFONTW *lpcf, HWND hwnd,
LPCFn_ENUMSTRUCT e);
INT AddFontStyle(const ENUMLOGFONTEXW *lpElfex, const NEWTEXTMETRICEXW *metrics,
UINT nFontType, const CHOOSEFONTW *lpcf, HWND hcmb2, HWND hcmb3,
HWND hDlg, BOOL iswin16);
void _dump_cf_flags(DWORD cflags);
LRESULT CFn_WMInitDialog(HWND hDlg, WPARAM wParam, LPARAM lParam,
LPCHOOSEFONTW lpcf);
LRESULT CFn_WMMeasureItem(HWND hDlg, WPARAM wParam, LPARAM lParam);
LRESULT CFn_WMDrawItem(HWND hDlg, WPARAM wParam, LPARAM lParam);
LRESULT CFn_WMCommand(HWND hDlg, WPARAM wParam, LPARAM lParam,
LPCHOOSEFONTW lpcf);
LRESULT CFn_WMPaint(HWND hDlg, WPARAM wParam, LPARAM lParam,
const CHOOSEFONTW *lpcf);
#endif /* _WINE_DLL_CDLG_H */
-1
View File
@@ -154,7 +154,6 @@ void COMDLG32_SetCommDlgExtendedError(DWORD err)
/***********************************************************************
* CommDlgExtendedError (COMDLG32.@)
* CommDlgExtendedError (COMMDLG.26)
*
* Get the thread's local error value if a comdlg32 function fails.
* RETURNS
+3
View File
@@ -16,6 +16,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "cdlg.h"
#include "filedlgbrowser.h"
/*
* Òóê èçðè÷íî ïèøåøå äà íå ïèïàì íåùî, àìà àç ãî ïèïíàõ.
* Àêî èìà ïðîáëåìè íÿêîé äà ãè îïðàâè.
+3
View File
@@ -16,6 +16,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "cdlg.h"
#include "filedlgbrowser.h"
/*
* WARNING: DO NOT CHANGE THE SIZE OF THE STANDARD DIALOG TEMPLATES.
*/
+3
View File
@@ -18,6 +18,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "cdlg.h"
#include "filedlgbrowser.h"
/*
* WARNING: DO NOT CHANGE THE SIZE OF THE STANDARD DIALOG TEMPLATES.
*/
+3
View File
@@ -17,6 +17,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "cdlg.h"
#include "filedlgbrowser.h"
/*
* WARNING: DO NOT CHANGE THE SIZE OF THE STANDARD DIALOG TEMPLATES.
*/
+59 -54
View File
@@ -17,6 +17,11 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "cdlg.h"
#include "filedlgbrowser.h"
#pragma code_page(65001)
/*
* WARNING: DO NOT CHANGE THE SIZE OF THE STANDARD DIALOG TEMPLATES.
*/
@@ -25,7 +30,7 @@ LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Öffnen"
CAPTION "Öffnen"
FONT 8, "MS Shell Dlg"
{
LTEXT "Datei&name:", 1090, 6, 6, 76, 9
@@ -38,10 +43,10 @@ FONT 8, "MS Shell Dlg"
COMBOBOX 1136, 6, 114, 90, 36, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP
LTEXT "&Laufwerke:", 1091, 110, 104, 92, 9
COMBOBOX 1137, 110, 114, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
DEFPUSHBUTTON "Öffnen", IDOK, 208, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
DEFPUSHBUTTON "Öffnen", IDOK, 208, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Abbrechen", IDCANCEL, 208, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Hilfe", pshHelp, 208, 46, 56, 14, WS_GROUP | WS_TABSTOP
CHECKBOX "&Schreibgeschützt", 1040, 208, 68, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "&Schreibgeschützt", 1040, 208, 68, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
}
@@ -63,7 +68,7 @@ FONT 8, "MS Shell Dlg"
DEFPUSHBUTTON "Speichern als", IDOK, 208, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Abbrechen", IDCANCEL, 208, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Hilfe", pshHelp, 208, 46, 56, 14, WS_GROUP | WS_TABSTOP
CHECKBOX "&Schreibgeschützt", 1040, 208, 68, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "&Schreibgeschützt", 1040, 208, 68, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
}
@@ -83,7 +88,7 @@ FONT 8, "MS Shell Dlg"
PUSHBUTTON "&Einrichten", psh1, 206, 46, 56, 14, WS_GROUP | WS_TABSTOP
LTEXT "&Von:", 1090, 60, 80, 30, 9
LTEXT "&Bis:", 1091, 120, 80, 30, 9
LTEXT "Druck&qualität:", 1092, 6, 100, 76, 9
LTEXT "Druck&qualität:", 1092, 6, 100, 76, 9
COMBOBOX 1136, 80, 100, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
CHECKBOX "In &Datei drucken", 1040, 20, 100, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "Verdichtet", 1041, 160, 100, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
@@ -108,8 +113,8 @@ FONT 8, "MS Shell Dlg"
RADIOBUTTON "&Querformat", rad4, 50, 115, 40, 12
ICON "LANDSCAP", 1097, 10, 95, 32, 32
ICON "PORTRAIT", 1098, 10, 95, 32, 32
GROUPBOX "Paper", 1074, 120, 85, 180, 50, BS_GROUPBOX
LTEXT "&Größe", 1089, 130, 95, 30, 9
GROUPBOX "Papier", 1074, 120, 85, 180, 50, BS_GROUPBOX
LTEXT "&Größe", 1089, 130, 95, 30, 9
LTEXT "P&apierquelle", 1090, 130, 110, 30, 9
COMBOBOX 1137, 155, 95, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
COMBOBOX 1138, 155, 110, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
@@ -124,14 +129,14 @@ BEGIN
CONTROL "", rct2, "Static", SS_GRAYRECT, 160, 12, 4, 80
CONTROL "", rct3, "Static", SS_GRAYRECT, 84, 88, 80, 4
GROUPBOX "Papier", grp2, 8, 96, 224, 56, BS_GROUPBOX
LTEXT "&Größe:", stc2, 16, 112, 36, 8
LTEXT "&Größe:", stc2, 16, 112, 36, 8
COMBOBOX cmb2, 64, 110, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL
LTEXT "&Zufuhr:", stc3, 16, 132, 36, 8
COMBOBOX cmb3, 64, 130, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL
GROUPBOX "Format", grp1, 8, 156, 64, 56, BS_GROUPBOX
AUTORADIOBUTTON "&Hochformat", rad1, 16, 170, 52, 12, BS_AUTORADIOBUTTON
AUTORADIOBUTTON "&Querformat", rad2, 16, 190, 52, 12, BS_AUTORADIOBUTTON
GROUPBOX "Ränder", grp4, 80, 156, 152, 56, BS_GROUPBOX
GROUPBOX "Ränder", grp4, 80, 156, 152, 56, BS_GROUPBOX
LTEXT "&Links:", stc15, 88, 172, 21, 8
EDITTEXT edt4, 111, 170, 39, 12, WS_TABSTOP|WS_GROUP|WS_BORDER
LTEXT "&Rechts:", stc16, 159, 172, 27, 8
@@ -157,7 +162,7 @@ FONT 8, "MS Shell Dlg"
LTEXT "Schrift&stil:",1089 ,108,3,44,9
COMBOBOX 1137,108,13,64,54, CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_DISABLENOSCROLL |
WS_VSCROLL | WS_TABSTOP | CBS_SIMPLE
LTEXT "Schrift&größe:",1090,179,3,30,9
LTEXT "Schrift&größe:",1090,179,3,30,9
COMBOBOX 1138,179,13,32,54, CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_DISABLENOSCROLL |
WS_VSCROLL | WS_TABSTOP | CBS_SIMPLE | CBS_SORT
DEFPUSHBUTTON "OK",IDOK,218,6,40,14,WS_GROUP
@@ -188,13 +193,13 @@ FONT 8, "MS Shell Dlg"
LTEXT "Farbe | B&asis", 1090, 150, 151, 48, 10
LTEXT "&Rot:", 726 ,249,126,24,10
EDITTEXT 706, 275,124,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP
LTEXT "&Grün:",727/*1095*/,249,140,24,10
LTEXT "&Grün:",727/*1095*/,249,140,24,10
EDITTEXT 707, 275,138,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP
LTEXT "&Blau:",728 /*1096*/,249,154,24,10
EDITTEXT 708, 275,152,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP
LTEXT "&Farbe:" ,723 /*1091*/,202,126,22,10
EDITTEXT 703, 226,124,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP
LTEXT "&Sätt:" ,724 /*1092*/,202,140,22,10
LTEXT "&Sätt:" ,724 /*1092*/,202,140,22,10
EDITTEXT 704, 226,138,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP
LTEXT "H&ell:" ,725 /*1093*/,202,154,22,10
EDITTEXT 705, 226,152,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP
@@ -206,7 +211,7 @@ FONT 8, "MS Shell Dlg"
DEFPUSHBUTTON "Ok", IDOK, 4, 166, 44, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Abbrechen", IDCANCEL, 52, 166, 44, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Hilfe", pshHelp,100,166, 44, 14
PUSHBUTTON "Farbe hin&zufügen", 712/*1024*/, 152, 166, 142, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Farbe hin&zufügen", 712/*1024*/, 152, 166, 142, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Farben &definieren >>", 719/*1025*/, 4, 150, 142, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&a",713,300,200,4,14 /* just a dummy: 'a' is like &a in "B&asis" */
}
@@ -220,7 +225,7 @@ FONT 8, "MS Shell Dlg"
LTEXT "S&uchen nach:", -1, 4, 8, 45, 8
EDITTEXT 1152, 53, 7, 128, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
CHECKBOX "Nu&r ganzes Wort suchen", 1040, 4, 26, 100, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "Groß-/Klein&schreibung", 1041, 4, 42, 84, 12, BS_AUTOCHECKBOX | WS_TABSTOP
CHECKBOX "Groß-/Klein&schreibung", 1041, 4, 42, 84, 12, BS_AUTOCHECKBOX | WS_TABSTOP
GROUPBOX "Suchrichtung", 1072, 113, 23, 68, 37
CONTROL "Nach &oben", rad1, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 117, 34, 50, 10
CONTROL "Nach &unten", rad2, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 117, 47, 50, 10
@@ -240,7 +245,7 @@ FONT 8, "MS Shell Dlg"
LTEXT "Ersetzen &durch:", -1, 4, 26, 52, 8
EDITTEXT 1153, 56, 24, 112, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
CHECKBOX "Nu&r ganzes Wort", 1040, 5, 46, 104, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "Groß-/Kleins&chreibung", 1041, 5, 62, 86, 12, BS_AUTOCHECKBOX | WS_TABSTOP
CHECKBOX "Groß-/Kleins&chreibung", 1041, 5, 62, 86, 12, BS_AUTOCHECKBOX | WS_TABSTOP
DEFPUSHBUTTON "&Weitersuchen", IDOK, 175, 6, 60, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Ersetzen", psh1, 175, 23, 60, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "A&lles ersetzen", psh2, 175, 40, 60, 14, WS_GROUP | WS_TABSTOP
@@ -250,7 +255,7 @@ FONT 8, "MS Shell Dlg"
NEWFILEOPENORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 280, 164
STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN
CAPTION "Öffnen"
CAPTION "Öffnen"
FONT 8, "MS Shell Dlg"
{
LTEXT "&Suche in",IDC_LOOKINSTATIC,4,6,43,8, SS_NOTIFY
@@ -265,14 +270,14 @@ FONT 8, "MS Shell Dlg"
LTEXT "Datei&typen",IDC_FILETYPESTATIC,5,128,42,8, SS_NOTIFY
COMBOBOX IDC_FILETYPE,54,126,155,53,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
CONTROL "&Schreibgeschützt",IDC_OPENREADONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,54,145,100,10
CONTROL "&Schreibgeschützt",IDC_OPENREADONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,54,145,100,10
DEFPUSHBUTTON "Ö&ffnen", IDOK,222,110,50,14
DEFPUSHBUTTON "Ö&ffnen", IDOK,222,110,50,14
PUSHBUTTON "Abbrechen", IDCANCEL,222,128,50,14
PUSHBUTTON "&Hilfe", pshHelp,222,145,50,14
}
PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 186
PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 295, 186
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU |
DS_CONTEXTHELP | DS_3DLOOK
CAPTION "Drucken"
@@ -282,24 +287,24 @@ FONT 8, "MS Shell Dlg"
PUSHBUTTON "Abbrechen", IDCANCEL, 232,164, 48,14, WS_GROUP
PUSHBUTTON "&Hilfe", pshHelp, 50, 161, 48,14, WS_GROUP
GROUPBOX "Drucker", grp4, 8, 4, 272,84, WS_GROUP
CONTROL "In Da&tei drucken", chx1, "Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,212,70,64,12
GROUPBOX "Drucker", grp4, 8, 4, 279,84, WS_GROUP
CONTROL "In Da&tei drucken", chx1, "Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,212,70,66,12
PUSHBUTTON "&Eigenschaften", psh2, 212, 17, 60,14, WS_GROUP
LTEXT "&Name:", stc6, 16, 20, 36,8
COMBOBOX cmb4, 52, 18, 152,152,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP
LTEXT "Status:", stc8, 16, 36, 36,10, SS_NOPREFIX
LTEXT "Dummy State", stc12, 52, 36, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "[keiner]", stc12, 52, 36, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Typ:", stc7, 16, 48, 36,10, SS_NOPREFIX
LTEXT "Dummy Type", stc11, 52, 48, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "[keiner]", stc11, 52, 48, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Ort:", stc10, 16, 60, 36,10, SS_NOPREFIX
LTEXT "Dummy Location", stc14, 52, 60, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "[keiner]", stc14, 52, 60, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Kommentar:", stc9, 16, 72, 36,10, SS_NOPREFIX
LTEXT "Dummy Remark", stc13, 52, 72, 152,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "[keiner]", stc13, 52, 72, 152,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
GROUPBOX "Kopien", grp2, 160, 92, 120,64, WS_GROUP
GROUPBOX "Kopien", grp2, 160, 92, 127,64, WS_GROUP
LTEXT "Anzahl &Kopien:",stc5,168,108,68,8
ICON "", ico3, 162,124, 76,24, WS_GROUP | SS_CENTERIMAGE
CONTROL "C&ollate", chx2,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,240,130,36,12
CONTROL "S&ortieren", chx2,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,240,130,42,12
EDITTEXT edt3, 240,106, 32,12, WS_GROUP | ES_NUMBER
GROUPBOX "Druck Bereich", grp1, 8,92, 144,64, WS_GROUP
@@ -336,7 +341,7 @@ BEGIN
LTEXT "[keiner]", stc13, 52, 72, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
GROUPBOX "Papier", grp2, 8, 92, 164,56, WS_GROUP
LTEXT "&Größe:", stc2, 16,108, 36, 8
LTEXT "&Größe:", stc2, 16,108, 36, 8
COMBOBOX cmb2, 52,106, 112,112,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP
LTEXT "&Zufuhr:", stc3, 16,128, 36, 8
COMBOBOX cmb3, 52,126, 112,112,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP
@@ -349,7 +354,7 @@ END
STRINGTABLE DISCARDABLE
{
IDS_ABOUTBOX "Ü&ber den Folderpicker"
IDS_ABOUTBOX "Ü&ber den Folderpicker"
IDS_DOCUMENTFOLDERS "Dokumenten Ordner"
IDS_PERSONAL "Meine Dokumente"
IDS_FAVORITES "Meine Favoriten"
@@ -364,10 +369,10 @@ STRINGTABLE DISCARDABLE
IDS_SYSTEMFOLDERS "System Ordner"
IDS_LOCALHARDRIVES "Lokale Festplatten"
IDS_FILENOTFOUND "Datei nicht gefunden"
IDS_VERIFYFILE "Bitte überprüfen sie, ob der korrekte Dateiname angegeben wurde"
IDS_VERIFYFILE "Bitte überprüfen sie, ob der korrekte Dateiname angegeben wurde"
IDS_CREATEFILE "Die Datei existiert nicht.\nWollen Sie sie neu anlegen?"
IDS_OVERWRITEFILE "Die Datei existiert bereits.\nWollen Sie sie überschreiben?"
IDS_INVALID_FILENAME_TITLE "Unzulässige Zeichen im Pfad"
IDS_OVERWRITEFILE "Die Datei existiert bereits.\nWollen Sie sie überschreiben?"
IDS_INVALID_FILENAME_TITLE "Unzulässige Zeichen im Pfad"
IDS_INVALID_FILENAME "Ein Dateiname darf folgende Zeichen nicht enthalten:\n / : < > |"
IDS_PATHNOTEXISTING "Der Pfad existiert nicht"
IDS_FILENOTEXISTING "Die Datei existiert nicht"
@@ -375,7 +380,7 @@ STRINGTABLE DISCARDABLE
STRINGTABLE DISCARDABLE
{
IDS_UPFOLDER "Eine Verzeichnisebene höher"
IDS_UPFOLDER "Eine Verzeichnisebene höher"
IDS_NEWFOLDER "Neuen Ordner anlegen"
IDS_LISTVIEW "Liste"
IDS_REPORTVIEW "Details"
@@ -389,50 +394,50 @@ STRINGTABLE DISCARDABLE
PD32_VALUE_UREADABLE "Unlesbarer Eintrag"
PD32_INVALID_PAGE_RANGE "Dieser Wert liegt nicht auf der Seite.\n\
Bitte geben sie einen Wert zwischen %d und %d an."
PD32_FROM_NOT_ABOVE_TO "Der 'von' Eintrag kann nicht größer sein als der 'bis' Eintrag."
PD32_MARGINS_OVERLAP "Die Ränder überlappen oder sind außerhalb des Papiers.\nBitte die Ränder neu eingeben."
PD32_FROM_NOT_ABOVE_TO "Der 'von' Eintrag kann nicht größer sein als der 'bis' Eintrag."
PD32_MARGINS_OVERLAP "Die Ränder überlappen oder sind außerhalb des Papiers.\nBitte die Ränder neu eingeben."
PD32_NR_OF_COPIES_EMPTY "Es muss ein Wert bei der Anzahl der Kopien angegeben werden."
PD32_TOO_LARGE_COPIES "Ihr Drucker unterstützt so viele Kopien nicht.\nBitte verwenden Sie eine Kopienzahl zwischen 1 und %d."
PD32_TOO_LARGE_COPIES "Ihr Drucker unterstützt so viele Kopien nicht.\nBitte verwenden Sie eine Kopienzahl zwischen 1 und %d."
PD32_PRINT_ERROR "Ein Druckerfehler ist aufgetreten."
PD32_NO_DEFAULT_PRINTER "Es ist kein Standarddrucker eingestellt."
PD32_CANT_FIND_PRINTER "Kann den Drucker nicht finden."
PD32_OUT_OF_MEMORY "Kein freier Speicher mehr."
PD32_GENERIC_ERROR "Ein unbekannter Fehler ist aufgetreten."
PD32_DRIVER_UNKNOWN "Unbekannter Druckertreiber."
PD32_NO_DEVICES "Bevor Sie drucker-relevante Aufgaben ausführen können, \
PD32_NO_DEVICES "Bevor Sie drucker-relevante Aufgaben ausführen können, \
wie die Seiteneinrichtung oder ein Dokument zu drucken, \
müssen Sie einen Drucker installieren. Bitte führen Sie dies zuerst aus und versuchen Sie es erneut."
müssen Sie einen Drucker installieren. Bitte führen Sie dies zuerst aus und versuchen Sie es erneut."
PD32_DEFAULT_PRINTER "Standard Drucker; "
PD32_NR_OF_DOCUMENTS_IN_QUEUE "Es sind %d Dokumente in der Queue"
PD32_MARGINS_IN_INCHES "Ränder [inches/zoll]"
PD32_MARGINS_IN_MILLIMETERS "Ränder [mm]"
PD32_MARGINS_IN_INCHES "Ränder [inches/zoll]"
PD32_MARGINS_IN_MILLIMETERS "Ränder [mm]"
PD32_MILLIMETERS "mm"
PD32_PRINTER_STATUS_READY "Bereit"
PD32_PRINTER_STATUS_PAUSED "Gestoppt; "
PD32_PRINTER_STATUS_ERROR "Fehler; "
PD32_PRINTER_STATUS_PENDING_DELETION "Wartet auf Löschung; "
PD32_PRINTER_STATUS_PENDING_DELETION "Wartet auf Löschung; "
PD32_PRINTER_STATUS_PAPER_JAM "Papierstau; "
PD32_PRINTER_STATUS_PAPER_OUT "Papierfach leer; "
PD32_PRINTER_STATUS_MANUAL_FEED "Papier manuell zuführen; "
PD32_PRINTER_STATUS_MANUAL_FEED "Papier manuell zuführen; "
PD32_PRINTER_STATUS_PAPER_PROBLEM "Papierproblem; "
PD32_PRINTER_STATUS_OFFLINE "Printer ist offline; "
PD32_PRINTER_STATUS_IO_ACTIVE "Datenübertragung; "
PD32_PRINTER_STATUS_BUSY "Beschäftigt; "
PD32_PRINTER_STATUS_IO_ACTIVE "Datenübertragung; "
PD32_PRINTER_STATUS_BUSY "Beschäftigt; "
PD32_PRINTER_STATUS_PRINTING "Druckend; "
PD32_PRINTER_STATUS_OUTPUT_BIN_FULL "Ausgabe Fach ist voll; "
PD32_PRINTER_STATUS_NOT_AVAILABLE "Nicht vorhanden; "
PD32_PRINTER_STATUS_WAITING "Wartend; "
PD32_PRINTER_STATUS_PROCESSING "In Bearbeitung; "
PD32_PRINTER_STATUS_INITIALIZING "Initialisierend; "
PD32_PRINTER_STATUS_WARMING_UP "Aufwärmend; "
PD32_PRINTER_STATUS_WARMING_UP "Aufwärmend; "
PD32_PRINTER_STATUS_TONER_LOW "Tonerstand niedrig; "
PD32_PRINTER_STATUS_NO_TONER "Kein Toner mehr; "
PD32_PRINTER_STATUS_PAGE_PUNT "Page punt; "
PD32_PRINTER_STATUS_PAGE_PUNT "Seitenausgabe; "
PD32_PRINTER_STATUS_USER_INTERVENTION "Durch Benutzer unterbrochen; "
PD32_PRINTER_STATUS_OUT_OF_MEMORY "Kein Speicher mehr; "
PD32_PRINTER_STATUS_DOOR_OPEN "Druckergehäuse ist offen; "
PD32_PRINTER_STATUS_DOOR_OPEN "Druckergehäuse ist offen; "
PD32_PRINTER_STATUS_SERVER_UNKNOWN "Druckserver unbekannt; "
PD32_PRINTER_STATUS_POWER_SAVE "Stromsparmodus; "
}
@@ -449,28 +454,28 @@ STRINGTABLE DISCARDABLE /* Color names */
{
IDS_COLOR_BLACK "Schwarz"
IDS_COLOR_MAROON "Kastanienbraun"
IDS_COLOR_GREEN "Grün"
IDS_COLOR_OLIVE "Olivgrün"
IDS_COLOR_GREEN "Grün"
IDS_COLOR_OLIVE "Olivgrün"
IDS_COLOR_NAVY "Dunkelblau"
IDS_COLOR_PURPLE "Lila"
IDS_COLOR_TEAL "Blaugrün"
IDS_COLOR_TEAL "Blaugrün"
IDS_COLOR_GRAY "Grau"
IDS_COLOR_SILVER "Silber"
IDS_COLOR_RED "Rot"
IDS_COLOR_LIME "Hellgrün"
IDS_COLOR_LIME "Hellgrün"
IDS_COLOR_YELLOW "Gelb"
IDS_COLOR_BLUE "Blau"
IDS_COLOR_FUCHSIA "Pink"
IDS_COLOR_AQUA "Aquamarin"
IDS_COLOR_WHITE "Weiß"
IDS_COLOR_WHITE "Weiß"
}
STRINGTABLE DISCARDABLE
{
IDS_FONT_SIZE "Wählen Sie eine Schriftgröße zwischen %d und %d Punkten aus."
IDS_FONT_SIZE "Wählen Sie eine Schriftgröße zwischen %d und %d Punkten aus."
IDS_SAVE_BUTTON "&Speichern"
IDS_SAVE_IN "Speichern &unter:"
IDS_SAVE "Speichern"
IDS_SAVE_AS "Speichern als"
IDS_OPEN_FILE "Öffne Datei"
IDS_OPEN_FILE "Öffne Datei"
}
+3
View File
@@ -16,6 +16,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "cdlg.h"
#include "filedlgbrowser.h"
/*
* WARNING: DO NOT CHANGE THE SIZE OF THE STANDARD DIALOG TEMPLATES.
*/
+3
View File
@@ -16,6 +16,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "cdlg.h"
#include "filedlgbrowser.h"
/*
* WARNING: DO NOT CHANGE THE SIZE OF THE STANDARD DIALOG TEMPLATES.
*/
+4 -1
View File
@@ -1,6 +1,6 @@
/*
* Copyright 1996 Duncan C Thomson
* Copyright 1006 Antonio Codazzi
* Copyright 2006 Antonio Codazzi
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -17,6 +17,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "cdlg.h"
#include "filedlgbrowser.h"
/*
* WARNING: DO NOT CHANGE THE SIZE OF THE STANDARD DIALOG TEMPLATES.
*/
+3
View File
@@ -17,6 +17,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "cdlg.h"
#include "filedlgbrowser.h"
/*
* WARNING: DO NOT CHANGE THE SIZE OF THE STANDARD DIALOG TEMPLATES.
*/
+3
View File
@@ -17,6 +17,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "cdlg.h"
#include "filedlgbrowser.h"
/*
* WARNING: DO NOT CHANGE THE SIZE OF THE STANDARD DIALOG TEMPLATES.
*/
+217 -210
View File
@@ -4,6 +4,7 @@
*
* Copyright 1995 Alexandre Julliard
* Copyright 2005-2008 Jonathan Ernst
* Copyright 2009 Frédéric Delanoy
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -20,6 +21,12 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "cdlg.h"
#include "filedlgbrowser.h"
/* UTF-8 */
#pragma code_page(65001)
/*
* WARNING: DO NOT CHANGE THE SIZE OF THE STANDARD DIALOG TEMPLATES.
*/
@@ -31,20 +38,20 @@ STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Ouvrir"
FONT 8, "MS Shell Dlg"
{
LTEXT "&Nom de fichier :", 1090, 6, 6, 76, 9
LTEXT "&Nom de fichier :", 1090, 6, 6, 76, 9
EDITTEXT edt1, 6, 16, 90, 12, ES_AUTOHSCROLL | ES_OEMCONVERT | WS_BORDER | WS_TABSTOP
LISTBOX 1120, 6, 32, 90, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
LTEXT "&Répertoires", -1, 110, 6, 92, 9
LTEXT "&Répertoires", -1, 110, 6, 92, 9
LTEXT "", 1088, 110, 18, 92, 9, SS_NOPREFIX | WS_GROUP
LISTBOX 1121, 110, 32, 92, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
LTEXT "Liste des fichiers de &type :", 1089, 6, 104, 90, 9
COMBOBOX cmb1, 6, 114, 90, 36, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP
LTEXT "&Lecteurs :", 1091, 110, 104, 92, 9
COMBOBOX cmb2, 110, 114, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
DEFPUSHBUTTON "OK", 1, 208, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
LTEXT "Liste des fichiers de &type :", 1089, 6, 104, 90, 9
COMBOBOX cmb1, 6, 114, 90, 15, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP
LTEXT "&Lecteurs :", 1091, 110, 104, 92, 9
COMBOBOX cmb2, 110, 114, 92, 15, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
DEFPUSHBUTTON "Ouvrir", 1, 208, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Annuler", 2, 208, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Aid&e", pshHelp, 208, 46, 56, 14, WS_GROUP | WS_TABSTOP
CHECKBOX "Lecture seule", chx1, 208, 68, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "&Lecture seule", chx1, 208, 68, 55, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
}
@@ -53,84 +60,84 @@ STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Enregistrer sous..."
FONT 8, "MS Shell Dlg"
{
LTEXT "&Nom de fichier :", 1090, 6, 6, 76, 9
LTEXT "&Nom de fichier :", 1090, 6, 6, 76, 9
EDITTEXT edt1, 6, 16, 90, 12, ES_AUTOHSCROLL | ES_OEMCONVERT | WS_BORDER | WS_TABSTOP
LISTBOX 1120, 6, 32, 90, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
LTEXT "&Répertoires :", -1, 110, 6, 92, 9
LTEXT "&Répertoires :", -1, 110, 6, 92, 9
LTEXT "", 1088, 110, 18, 92, 9, SS_NOPREFIX | WS_GROUP
LISTBOX 1121, 110, 32, 92, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
LTEXT "Liste des fichiers de &type :", 1089, 6, 104, 90, 9
LTEXT "Lister les fichiers de &type :", 1089, 6, 104, 90, 9
COMBOBOX cmb1, 6, 114, 90, 36, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP
LTEXT "&Lecteurs:", 1091, 110, 104, 92, 9
COMBOBOX cmb2, 110, 114, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
DEFPUSHBUTTON "OK", 1, 208, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Annuler", 2, 208, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Aid&e", pshHelp, 208, 46, 56, 14, WS_GROUP | WS_TABSTOP
CHECKBOX "Lecture seule", chx1, 208, 68, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
DEFPUSHBUTTON "Enregistrer", 1, 208, 6, 60, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Annuler", 2, 208, 24, 60, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Aid&e", pshHelp, 208, 46, 60, 14, WS_GROUP | WS_TABSTOP
CHECKBOX "Lecture seule", chx1, 208, 68, 55, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
}
PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134
PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 237, 134
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Imprimer"
FONT 8, "MS Shell Dlg"
{
LTEXT "Imprimante :", 1088, 6, 6, 40, 9
LTEXT "Imprimante :", 1088, 6, 6, 40, 9
LTEXT "", 1089, 60, 6, 150, 9
GROUPBOX "Étendue", grp1, 6, 30, 160, 65, BS_GROUPBOX
GROUPBOX "Zone d'impression", grp1, 6, 30, 160, 65, BS_GROUPBOX
RADIOBUTTON "&Tout", rad1, 16, 45, 60, 12
RADIOBUTTON "&Sélection", rad2, 16, 60, 60, 12
RADIOBUTTON "&Pages", rad3, 16, 75, 60, 12
DEFPUSHBUTTON "OK", 1, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Annuler", 2, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Configurer...", psh1, 206, 46, 56, 14, WS_GROUP | WS_TABSTOP
LTEXT "&De:", 1090, 60, 80, 30, 9
LTEXT "&A:", 1091, 120, 80, 30, 9
LTEXT "&Qualité d'impression:", 1092, 6, 100, 76, 9
COMBOBOX cmb1, 80, 100, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
CHECKBOX "&Fichier d'impression", chx1, 20, 100, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "Copies t&riées", chx2, 160, 100, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
RADIOBUTTON "&Sélection", rad2, 16, 60, 60, 12
RADIOBUTTON "&Pages", rad3, 16, 75, 41, 12
DEFPUSHBUTTON "Imprimer", 1, 173, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Annuler", 2, 173, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Configurer...", psh1, 173, 46, 56, 14, WS_GROUP | WS_TABSTOP
LTEXT "&De:", 1090, 64, 77, 30, 9
LTEXT "&à:", 1091, 120, 77, 30, 9
LTEXT "&Qualité d'impression:", 1092, 7, 102, 69, 9
COMBOBOX cmb1, 78, 100, 88, 13, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
CHECKBOX "Imprimer dans un &fichier", chx1, 7, 117, 93, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "Copies t&riées", chx2, 106, 118, 63, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
}
PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134
PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 151
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Configuration de l'impression"
FONT 8, "MS Shell Dlg"
{
GROUPBOX "Imprimante", grp1, 6, 10, 180, 65, BS_GROUPBOX
RADIOBUTTON "&Imprimante par défaut", rad1, 16, 20, 80, 12
GROUPBOX "Imprimante", grp1, 6, 6, 180, 74, BS_GROUPBOX
RADIOBUTTON "&Imprimante par défaut", rad1, 16, 22, 90, 12
LTEXT "[aucune]", 1088, 35, 35, 120, 9
RADIOBUTTON "Imprimante &spécifique", rad2, 16, 50, 80, 12
COMBOBOX cmb1, 35, 65, 149, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
RADIOBUTTON "Imprimante &spécifique", rad2, 16, 46, 90, 12
COMBOBOX cmb1, 35, 60, 146, 17, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
DEFPUSHBUTTON "OK", 1, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Annuler", 2, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Options...", psh1, 206, 46, 56, 14, WS_GROUP | WS_TABSTOP
GROUPBOX "Orientation", grp2, 6, 85, 100, 50, BS_GROUPBOX
RADIOBUTTON "&Portrait", rad3, 50, 100, 40, 12
RADIOBUTTON "Paysag&e", rad4, 50, 115, 40, 12
ICON "LANDSCAP", stc10, 10, 95, 32, 32
ICON "PORTRAIT", stc11, 10, 95, 32, 32
GROUPBOX "Papier", grp3, 120, 85, 180, 50, BS_GROUPBOX
LTEXT "&Taille :", 1089, 130, 95, 30, 9
LTEXT "&Source :", 1090, 130, 110, 30, 9
COMBOBOX cmb2, 155, 95, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
COMBOBOX cmb3, 155, 110, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
GROUPBOX "Orientation", grp2, 6, 90, 100, 50, BS_GROUPBOX
RADIOBUTTON "&Portrait", rad3, 50, 105, 40, 12
RADIOBUTTON "Pa&ysage", rad4, 50, 120, 40, 12
ICON "LANDSCAP", stc10, 10, 100, 21, 20
ICON "PORTRAIT", stc11, 10, 100, 21, 20
GROUPBOX "Papier", grp3, 120, 90, 135, 50, BS_GROUPBOX
LTEXT "&Taille :", 1089, 125, 103, 30, 9
LTEXT "&Source :", 1090, 125, 121, 30, 9
COMBOBOX cmb2, 155, 100, 92, 17, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
COMBOBOX cmb3, 155, 118, 92, 17, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
}
CHOOSE_FONT DIALOG DISCARDABLE 13, 54, 264, 147
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Polices"
CAPTION "Police"
FONT 8, "MS Shell Dlg"
{
LTEXT "&Police:",stc1 ,6,3,40,9
LTEXT "&Police :",stc1 ,6,3,40,9
COMBOBOX cmb1 ,6,13,94,54, CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_DISABLENOSCROLL |
CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP | CBS_SIMPLE
LTEXT "St&yle de police:",stc2 ,108,3,44,9
LTEXT "St&yle :",stc2 ,108,3,44,9
COMBOBOX cmb2,108,13,64,54, CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_DISABLENOSCROLL |
WS_VSCROLL | WS_TABSTOP | CBS_SIMPLE
LTEXT "&Taille:",stc3,179,3,30,9
LTEXT "&Taille :",stc3,179,3,30,9
COMBOBOX cmb3,179,13,32,54, CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_DISABLENOSCROLL |
WS_VSCROLL | WS_TABSTOP | CBS_SIMPLE | CBS_SORT
DEFPUSHBUTTON "OK",IDOK,218,6,40,14,WS_GROUP
@@ -138,15 +145,15 @@ FONT 8, "MS Shell Dlg"
PUSHBUTTON "A&ppliquer", psh3,218,40,40,14,WS_GROUP
PUSHBUTTON "Aid&e" , pshHelp,218,57,40,14,WS_GROUP
GROUPBOX "Effets",grp1,6,72,84,34,WS_GROUP
CHECKBOX "&Barré", chx1, 10,82,50,10, BS_AUTOCHECKBOX | WS_TABSTOP
CHECKBOX "&Souligné", chx2, 10,94,50,10, BS_AUTOCHECKBOX
LTEXT "&Couleur:", stc4 ,6,110,30,9
CHECKBOX "&Barré", chx1, 10,82,50,10, BS_AUTOCHECKBOX | WS_TABSTOP
CHECKBOX "&Souligné", chx2, 10,94,50,10, BS_AUTOCHECKBOX
LTEXT "&Couleur :", stc4 ,6,110,30,9
COMBOBOX cmb4,6,120,84,100,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS |
CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP
GROUPBOX "Exemple",grp2,98,72,120,36,WS_GROUP
CTEXT "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE
LTEXT "Scr&ipt (translate):",stc7 ,98,114,80,9
COMBOBOX cmb5,98,124,120,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS |
GROUPBOX "Aperçu",grp2,98,72,120,36,WS_GROUP
CTEXT "\nÀàCcÇçEeÉéÈèÊêIiÏïÎîLlUuÙù12",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE
LTEXT "Sc&ript :",stc7 ,98,110,80,9
COMBOBOX cmb5,98,120,120,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS |
CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
}
@@ -156,31 +163,31 @@ STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Couleurs"
FONT 8, "MS Shell Dlg"
{
LTEXT "Couleurs de &base :", 1088, 4, 4, 140, 10
LTEXT "&Couleurs personnalisées :", 1089, 4, 106, 140, 10
LTEXT "Couleur | &Uni", 1090, 150, 151, 48, 10
LTEXT "&Rouge :", 726 /*1094*/,249,126,24,10
LTEXT "Couleurs de base :", 1088, 4, 4, 140, 10
LTEXT "Couleurs personnalisées :", 1089, 4, 106, 140, 10
LTEXT "Couleur | &Uni", 1090, 150, 151, 48, 10
LTEXT "&Rouge :", 726 /*1094*/,249,126,24,10
EDITTEXT 706, 275,124,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP
LTEXT "&Vert :",727/*1095*/,249,140,24,10
LTEXT "&Vert :",727/*1095*/,249,140,24,10
EDITTEXT 707, 275,138,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP
LTEXT "Bl&eu :",728 /*1096*/,249,154,24,10
LTEXT "Bl&eu :",728 /*1096*/,249,154,24,10
EDITTEXT 708, 275,152,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP
LTEXT "&Teinte :" ,723 /*1091*/,202,126,22,10
LTEXT "&Teinte :" ,723 /*1091*/,202,126,22,10
EDITTEXT 703, 226,124,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP
LTEXT "&Sat. :" ,724 /*1092*/,202,140,22,10
LTEXT "&Satur. :" ,724 /*1092*/,202,140,22,10
EDITTEXT 704, 226,138,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP
LTEXT "&Lum. :" ,725 /*1093*/,202,154,22,10
LTEXT "&Lum. :" ,725 /*1093*/,202,154,22,10
EDITTEXT 705, 226,152,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP
CONTROL "" ,720,"STATIC",SS_SIMPLE|WS_TABSTOP|WS_GROUP,4,14,140,86
CONTROL "" ,721,"STATIC",SS_SIMPLE|WS_TABSTOP|WS_GROUP,4,116,140,28
CONTROL "" ,710,"STATIC",WS_BORDER|SS_SIMPLE|WS_TABSTOP|WS_GROUP, 152,4,118,116
CONTROL "" ,702,"STATIC",SS_SIMPLE|WS_TABSTOP|WS_GROUP, 278,4,8,116
CONTROL "" ,709,"STATIC",SS_SIMPLE|WS_TABSTOP|WS_GROUP, 152,124,40,26
DEFPUSHBUTTON "Ok", 1, 4, 166, 44, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
DEFPUSHBUTTON "OK", 1, 4, 166, 44, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Annuler", 2, 52, 166, 44, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Aid&e", pshHelp,100,166, 44, 14
PUSHBUTTON "A&jouter couleur personnalisées", 712/*1024*/, 152, 166, 142, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Définir couleurs personnalisées >>", 719/*1025*/, 4, 150, 142, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Ajouter aux couleurs personnalisées", 712/*1024*/, 152, 166, 142, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Définir les couleurs personnalisées >>", 719/*1025*/, 4, 149, 142, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&i",713,300,200,4,14 /* just a dummy: 'i' is like &i in "sol&id" */
}
@@ -190,15 +197,15 @@ STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Rechercher"
FONT 8, "MS Shell Dlg"
{
LTEXT "&Rechercher :", -1, 4, 8, 42, 8
LTEXT "&Rechercher :", -1, 4, 8, 42, 8
EDITTEXT edt1, 47, 7, 128, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
CHECKBOX "M&ot seulement", chx1, 4, 26, 100, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "Respect des &majuscules/minuscules", chx2, 4, 42, 64, 12, BS_AUTOCHECKBOX | WS_TABSTOP
GROUPBOX "Direction", grp1, 107, 26, 68, 28
CONTROL "&Haut", rad1, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 111, 38, 20, 12
CONTROL "&Bas", rad2, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 138, 38, 30, 12
CHECKBOX "Mots &entiers seulement", chx1, 4, 26, 100, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "Respecter la &casse", chx2, 4, 42, 74, 12, BS_AUTOCHECKBOX | WS_TABSTOP
GROUPBOX "Direction", grp1, 103, 26, 72, 28
CONTROL "&Haut", rad1, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 108, 38, 30, 12
CONTROL "&Bas", rad2, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 140, 38, 30, 12
DEFPUSHBUTTON "&Poursuivre", 1, 182, 5, 50, 14, WS_GROUP | WS_TABSTOP
DEFPUSHBUTTON "&Suivant", 1, 182, 5, 50, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Annuler", 2, 182, 23, 50, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Aid&e", pshHelp, 182, 45, 50, 14, WS_GROUP | WS_TABSTOP
}
@@ -209,59 +216,59 @@ STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Remplacer"
FONT 8, "MS Shell Dlg"
{
LTEXT "&Rechercher :", -1, 4, 9, 48, 8
EDITTEXT edt1, 54, 7, 114, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
LTEXT "R&emplacer par :", -1, 4, 26, 48, 8
EDITTEXT edt2, 54, 24, 114, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
CHECKBOX "M&ot seulement", chx1, 5, 46, 104, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "Respect des &majuscules/minuscules", chx2, 5, 62, 59, 12, BS_AUTOCHECKBOX | WS_TABSTOP
LTEXT "&Rechercher :", -1, 4, 9, 48, 8
EDITTEXT edt1, 54, 7, 108, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
LTEXT "R&emplacer par :", -1, 4, 26, 48, 8
EDITTEXT edt2, 54, 24, 108, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
CHECKBOX "Mots &entiers uniquement", chx1, 5, 46, 104, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "Respecter la &casse", chx2, 5, 62, 74, 12, BS_AUTOCHECKBOX | WS_TABSTOP
DEFPUSHBUTTON "&Poursuivre", 1, 174, 4, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Rempla&cer", psh1, 174, 21, 50, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Remplacer &tout", psh2, 174, 38, 50, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Annuler", IDCANCEL, 174, 55, 50, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Aid&e", pshHelp, 174, 75, 50, 14, WS_GROUP | WS_TABSTOP
DEFPUSHBUTTON "&Suivant", 1, 168, 4, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Remplacer", psh1, 168, 21, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Remplacer &tout", psh2, 168, 38, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Annuler", IDCANCEL, 168, 55, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Aid&e", pshHelp, 168, 75, 56, 14, WS_GROUP | WS_TABSTOP
}
PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 186
PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 196
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU |
DS_CONTEXTHELP | DS_3DLOOK
CAPTION "Impression"
FONT 8, "MS Shell Dlg"
{
DEFPUSHBUTTON "OK", IDOK, 180,164, 48,14, WS_GROUP | BS_DEFPUSHBUTTON
PUSHBUTTON "Annuler", IDCANCEL, 232,164, 48,14, WS_GROUP
PUSHBUTTON "Aid&e", pshHelp, 50, 161, 48,14, WS_GROUP
DEFPUSHBUTTON "OK", IDOK, 178,176, 48,14, WS_GROUP | BS_DEFPUSHBUTTON
PUSHBUTTON "Annuler", IDCANCEL, 231,176, 48,14, WS_GROUP
PUSHBUTTON "Aid&e", pshHelp, 55, 176, 48,14, WS_GROUP
GROUPBOX "Imprimante", grp4, 8, 4, 272,84, WS_GROUP
CONTROL "Imprimer dans un fichier", chx1, "Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,212,70,64,12
PUSHBUTTON "Propriétés", psh2, 212, 17, 60,14, WS_GROUP
LTEXT "&Nom :", stc6, 16, 20, 36,8
COMBOBOX cmb4, 52, 18, 152,152,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP
LTEXT "État :", stc8, 16, 36, 36,10, SS_NOPREFIX
LTEXT "Dummy State", stc12, 52, 36, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Type :", stc7, 16, 48, 36,10, SS_NOPREFIX
LTEXT "Dummy Type", stc11, 52, 48, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Emplacement :", stc10, 16, 60, 36,10, SS_NOPREFIX
LTEXT "Dummy Location", stc14, 52, 60, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Commentaire:", stc9, 16, 72, 36,10, SS_NOPREFIX
LTEXT "Dummy Remark", stc13, 52, 72, 152,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
CONTROL "Imprimer dans un fichier", chx1, "Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,185,44,93,14
PUSHBUTTON "&Propriétés", psh2, 214, 17, 60,14, WS_GROUP
LTEXT "&Nom :", stc6, 16, 20, 36,8
COMBOBOX cmb4, 65, 18, 145, 15, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP
LTEXT "État :", stc8, 16, 36, 36,10, SS_NOPREFIX
LTEXT "État fictif", stc12, 65, 36, 112,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Type :", stc7, 16, 48, 36,10, SS_NOPREFIX
LTEXT "Type fictif", stc11, 65, 48, 111,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Emplacement :", stc10, 16, 60, 47,10, SS_NOPREFIX
LTEXT "Emplacement fictif", stc14, 65, 60, 211,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Commentaire:", stc9, 16, 72, 47, 10, SS_NOPREFIX
LTEXT "Remarque fictive", stc13, 65, 72, 144, 10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
GROUPBOX "Copies", grp2, 160, 92, 120,64, WS_GROUP
GROUPBOX "Copies", grp2, 160, 92, 120,73, WS_GROUP
LTEXT "Nombre de copies:",stc5,168,108,68,8
ICON "", ico3, 162,124, 76,24, WS_GROUP | SS_CENTERIMAGE
CONTROL "Copies assemblées",chx2,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,240,130,36,12
ICON "", ico3, 183,121,76,24, WS_GROUP | SS_CENTERIMAGE
CONTROL "Copies assemblées",chx2,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,167,148,77,12
EDITTEXT edt3, 240,106, 32,12, WS_GROUP | ES_NUMBER
GROUPBOX "Etendue de pages", grp1, 8,92, 144,64, WS_GROUP
CONTROL "Toutes", rad1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,16,106,64,12
CONTROL "Pages", rad3,"Button",BS_AUTORADIOBUTTON,16,122,36,12
CONTROL "Selection", rad2,"Button",BS_AUTORADIOBUTTON,16,138,64,12
EDITTEXT edt1, 74,122, 26,12, WS_GROUP | ES_NUMBER
EDITTEXT edt2, 118,122, 26,12, WS_GROUP | ES_NUMBER
RTEXT "&de :", stc2, 52,124, 20,8
RTEXT "&à :", stc3, 100,124, 16,8
GROUPBOX "Zone d'impression", grp1, 8,92, 144,73, WS_GROUP
CONTROL "&Tout", rad1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,16,108,64,12
CONTROL "&Pages", rad3,"Button",BS_AUTORADIOBUTTON,16,124,36,12
CONTROL "&Sélection", rad2,"Button",BS_AUTORADIOBUTTON,16,140,64,12
EDITTEXT edt1, 74,124, 26,12, WS_GROUP | ES_NUMBER
EDITTEXT edt2, 118,124, 26,12, WS_GROUP | ES_NUMBER
RTEXT "&de :", stc2, 52,127, 20,8
RTEXT "&à :", stc3, 100,127, 16,8
}
PRINT32_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 178
@@ -272,20 +279,20 @@ FONT 8, "MS Shell Dlg"
BEGIN
DEFPUSHBUTTON "OK",IDOK,180,156,48,14,WS_GROUP
PUSHBUTTON "Annuler",IDCANCEL,232,156,48,14
/* PUSHBUTTON "Réseau...", psh5, 284,156,48,14 */
/* PUSHBUTTON "Réseau...", psh5, 284,156,48,14 */
GROUPBOX "Imprimante", grp4, 8, 4, 272,84, WS_GROUP
PUSHBUTTON "&Propriétés", psh2, 212, 17, 60,14, WS_GROUP
LTEXT "&Nom :", stc6, 16, 20, 36,8
COMBOBOX cmb1, 52, 18, 152,152,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP
LTEXT "État:", stc8, 16, 36, 36,10, SS_NOPREFIX
LTEXT "[aucun]", stc12, 60, 36, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
PUSHBUTTON "&Propriétés", psh2, 214, 17, 60,14, WS_GROUP
LTEXT "&Nom :", stc6, 16, 20, 36,8
COMBOBOX cmb1, 65, 18, 145,15,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP
LTEXT "État:", stc8, 16, 36, 36,10, SS_NOPREFIX
LTEXT "État fictif", stc12, 65, 36, 210,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Type:", stc7, 16, 48, 36,10, SS_NOPREFIX
LTEXT "[aucun]", stc11, 60, 48, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Emplacement :", stc10, 16, 60, 36,10, SS_NOPREFIX
LTEXT "[aucun]", stc14, 60, 60, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Commentaire :", stc9, 16, 72, 36,10, SS_NOPREFIX
LTEXT "[aucun]", stc13, 60, 72, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Type fictif", stc11, 65, 48, 210,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Emplacement :", stc10, 16, 60, 47,10, SS_NOPREFIX
LTEXT "Emplacement fictif", stc14, 65, 60, 210,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Commentaire :", stc9, 16, 72, 47,10, SS_NOPREFIX
LTEXT "Commentaire fictif", stc13, 65, 72, 210,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
GROUPBOX "Papier", grp2, 8, 92, 164,56, WS_GROUP
LTEXT "&Taille:", stc2, 16,108, 36, 8
@@ -296,10 +303,10 @@ BEGIN
GROUPBOX "Orientation", grp1, 180, 92, 100,56, WS_GROUP
ICON "", ico1, 195,112, 18,20, WS_GROUP
CONTROL "&Portrait", rad1,"Button",BS_AUTORADIOBUTTON | WS_GROUP |WS_TABSTOP,224,106,52,12
CONTROL "&Paysage", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12
CONTROL "Pa&ysage", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12
END
PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 240, 240
PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 242, 240
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Mise en page"
FONT 8, "MS Shell Dlg"
@@ -307,26 +314,26 @@ BEGIN
CONTROL "", rct1, "Static", SS_WHITERECT, 80, 8, 80, 80
CONTROL "", rct2, "Static", SS_GRAYRECT, 160, 12, 4, 80
CONTROL "", rct3, "Static", SS_GRAYRECT, 84, 88, 80, 4
GROUPBOX "Papier", grp2, 8, 96, 224, 56, BS_GROUPBOX
LTEXT "&Taille :", stc2, 16, 112, 36, 8
COMBOBOX cmb2, 64, 110, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL
LTEXT "&Source :", stc3, 16, 132, 36, 8
COMBOBOX cmb3, 64, 130, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL
GROUPBOX "Papier", grp2, 8, 96, 228, 56, BS_GROUPBOX
LTEXT "&Taille :", stc2, 16, 112, 36, 8
COMBOBOX cmb2, 64, 110, 167, 15, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL
LTEXT "&Bac :", stc3, 16, 132, 36, 8
COMBOBOX cmb3, 64, 130, 167, 15, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL
GROUPBOX "Orientation", grp1, 8, 156, 64, 56, BS_GROUPBOX
AUTORADIOBUTTON "&Portrait", rad1, 16, 170, 52, 12, BS_AUTORADIOBUTTON
AUTORADIOBUTTON "P&aysage", rad2, 16, 190, 52, 12, BS_AUTORADIOBUTTON
GROUPBOX "Marges", grp4, 80, 156, 152, 56, BS_GROUPBOX
LTEXT "&Droite :", stc15, 88, 172, 21, 8
EDITTEXT edt4, 111, 170, 39, 12, WS_TABSTOP|WS_GROUP|WS_BORDER
LTEXT "&Gauche :", stc16, 159, 172, 27, 8
EDITTEXT edt6, 187, 170, 39, 12, WS_TABSTOP|WS_GROUP|WS_BORDER
LTEXT "&Haut :", stc17, 88, 192, 21, 8
EDITTEXT edt5, 111, 190, 39, 12, WS_TABSTOP|WS_GROUP|WS_BORDER
LTEXT "&Bas :", stc18, 159, 192, 23, 8
EDITTEXT edt7, 187, 190, 39, 12, WS_TABSTOP|WS_GROUP|WS_BORDER
DEFPUSHBUTTON "OK", IDOK, 71, 220, 50, 14, BS_PUSHBUTTON
PUSHBUTTON "Annuler", IDCANCEL, 126, 220, 50, 14
PUSHBUTTON "&Imprimante...", psh3, 184, 220, 48, 14
AUTORADIOBUTTON "Pa&ysage", rad2, 16, 190, 52, 12, BS_AUTORADIOBUTTON
GROUPBOX "Marges", grp4, 80, 156, 156, 56, BS_GROUPBOX
LTEXT "&Gauche :", stc15, 88, 172, 29, 8
EDITTEXT edt4, 119, 170, 39, 12, WS_TABSTOP|WS_GROUP|WS_BORDER
LTEXT "&Droite :", stc16, 163, 172, 27, 8
EDITTEXT edt6, 190, 170, 39, 12, WS_TABSTOP|WS_GROUP|WS_BORDER
LTEXT "&Haut :", stc17, 88, 192, 21, 8
EDITTEXT edt5, 119, 190, 39, 12, WS_TABSTOP|WS_GROUP|WS_BORDER
LTEXT "&Bas :", stc18, 163, 192, 23, 8
EDITTEXT edt7, 190, 190, 39, 12, WS_TABSTOP|WS_GROUP|WS_BORDER
DEFPUSHBUTTON "OK", IDOK, 70, 220, 51, 14, BS_PUSHBUTTON
PUSHBUTTON "Annuler", IDCANCEL, 125, 220, 51, 14
PUSHBUTTON "&Imprimante...", psh3, 184, 220, 51, 14
END
NEWFILEOPENORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 280, 164
@@ -340,13 +347,13 @@ FONT 8, "MS Shell Dlg"
LTEXT "" , IDC_TOOLBARSTATIC, 181, 2, 102, 17, NOT WS_GROUP | NOT WS_VISIBLE
LISTBOX IDC_SHELLSTATIC,4,20,272,85, LBS_SORT | LBS_NOINTEGRALHEIGHT | LBS_MULTICOLUMN | WS_HSCROLL | NOT WS_VISIBLE
LTEXT "&Nom du fichier :",IDC_FILENAMESTATIC,5,112,46,8, SS_NOTIFY
EDITTEXT IDC_FILENAME,54,110,155,12,ES_AUTOHSCROLL
LTEXT "&Nom du fichier",IDC_FILENAMESTATIC,5,112,50,8, SS_NOTIFY
EDITTEXT IDC_FILENAME,59,110,155,12,ES_AUTOHSCROLL
LTEXT "&Type du fichier",IDC_FILETYPESTATIC,5,128,42,8, SS_NOTIFY
COMBOBOX IDC_FILETYPE,54,126,155,53,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Fichiers de &type",IDC_FILETYPESTATIC,5,128,52,8, SS_NOTIFY
COMBOBOX IDC_FILETYPE,59,126,155,53,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
CONTROL "&Protection écriture",IDC_OPENREADONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,54,145,100,10
CONTROL "&Lecture seule",IDC_OPENREADONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,59,145,100,10
DEFPUSHBUTTON "Ouvrir", IDOK,222,110,50,14
PUSHBUTTON "Annuler", IDCANCEL,222,128,50,14
@@ -355,11 +362,11 @@ FONT 8, "MS Shell Dlg"
STRINGTABLE DISCARDABLE
{
IDS_ABOUTBOX "À propos du choix de répertoires"
IDS_DOCUMENTFOLDERS "Répertoire documents"
IDS_ABOUTBOX "À propos du XXX choix de répertoires"
IDS_DOCUMENTFOLDERS "Répertoires des documents"
IDS_PERSONAL "Mes documents"
IDS_FAVORITES "Mes favoris"
IDS_PATH "Répertoire système"
IDS_PATH "Chemin système (path)"
IDS_DESKTOP "Bureau"
IDS_FONTS "Polices"
IDS_MYCOMPUTER "Poste de travail"
@@ -367,24 +374,24 @@ STRINGTABLE DISCARDABLE
STRINGTABLE DISCARDABLE
{
IDS_SYSTEMFOLDERS "Répertoires système"
IDS_SYSTEMFOLDERS "Répertoires système"
IDS_LOCALHARDRIVES "Disques locaux"
IDS_FILENOTFOUND "Fichier non trouvé"
IDS_VERIFYFILE "Prière de vérifier que le nom de fichier indiqué est correct"
IDS_CREATEFILE "Ce fichier n'existe pas.\nSouhaitez-vous le créer ?"
IDS_OVERWRITEFILE "Ce fichier existe déjà.\nVoulez-vous le remplacer ?"
IDS_INVALID_FILENAME_TITLE "Le chemin d'accès contient des caractères invalides"
IDS_INVALID_FILENAME "Un nom de fichier ne peut contenir un des caractères suivants :\n / : < > |"
IDS_PATHNOTEXISTING "Le chemin d'accès n'existe pas"
IDS_FILENOTFOUND "Fichier non trouvé"
IDS_VERIFYFILE "Veuillez vérifier que le nom de fichier indiqué est correct"
IDS_CREATEFILE "Ce fichier n'existe pas.\nSouhaitez-vous le créer ?"
IDS_OVERWRITEFILE "Ce fichier existe déjà.\nVoulez-vous le remplacer ?"
IDS_INVALID_FILENAME_TITLE "Le chemin d'accès contient des caractères invalides"
IDS_INVALID_FILENAME "Un nom de fichier ne peut contenir aucun des caractères suivants :\n / : < > |"
IDS_PATHNOTEXISTING "Le chemin d'accès n'existe pas"
IDS_FILENOTEXISTING "Le fichier n'existe pas"
}
STRINGTABLE DISCARDABLE
{
IDS_UPFOLDER "Remonter d'un niveau"
IDS_NEWFOLDER "Créer un nouveau dossier"
IDS_NEWFOLDER "Créer un nouveau dossier"
IDS_LISTVIEW "Liste"
IDS_REPORTVIEW "Détails"
IDS_REPORTVIEW "Détails"
IDS_TODESKTOP "Voir le bureau"
}
@@ -392,59 +399,59 @@ STRINGTABLE DISCARDABLE
{
PD32_PRINT_TITLE "Imprimer"
PD32_VALUE_UREADABLE "Entrée illisible"
PD32_INVALID_PAGE_RANGE "Cette valeur n'est pas dans l'intervalle de pages\n\
PD32_VALUE_UREADABLE "Entrée illisible"
PD32_INVALID_PAGE_RANGE "Cette valeur n'est pas dans l'étendue de pages\n\
Veuillez indiquer une valeur entre %d et %d."
PD32_FROM_NOT_ABOVE_TO "Le champ « de » ne peut être plus grand \
que le champ « à »."
PD32_MARGINS_OVERLAP "Les marges se recouvrent ou dépassent du papier\n\
PD32_FROM_NOT_ABOVE_TO "Le champ « de » ne peut être plus grand \
que le champ « à »."
PD32_MARGINS_OVERLAP "Les marges se chevauchent ou dépassent du papier\n\
Veuillez indiquer de nouvelles valeurs."
PD32_NR_OF_COPIES_EMPTY "Le champ « Copies » est vide.\n\
PD32_NR_OF_COPIES_EMPTY "Le champ « Nombre de copies » est vide.\n\
Veuillez entrer un nombre et r&essayer."
PD32_TOO_LARGE_COPIES "Votre imprimante ne peut gérer autant de copies.\n\
PD32_TOO_LARGE_COPIES "Votre imprimante ne peut gérer autant de copies.\n\
Veuillez indiquer un nombre de copies entre 1 et %d."
PD32_PRINT_ERROR "Une erreur d'impression est intervenue."
PD32_NO_DEFAULT_PRINTER "Pas d'imprimante par défaut."
PD32_PRINT_ERROR "Une erreur d'impression s'est produite."
PD32_NO_DEFAULT_PRINTER "Imprimante par défaut non définie."
PD32_CANT_FIND_PRINTER "Impossible de trouver l'imprimante."
PD32_OUT_OF_MEMORY "Pas assez de mémoire."
PD32_GENERIC_ERROR "Une erreur est intervenue."
PD32_OUT_OF_MEMORY "Pas assez de mémoire."
PD32_GENERIC_ERROR "Une erreur s'est produite."
PD32_DRIVER_UNKNOWN "Pilote d'imprimante inconnu."
PD32_NO_DEVICES "Avant de pouvoir effectuer des opérations en relation avec l'impression \
PD32_NO_DEVICES "Avant de pouvoir effectuer des opérations en relation avec l'impression \
comme la configuration de l'imprimante ou l'impression d'un document, vous devez installer une imprimante. \
Veuillez en installer une et réessayez."
Veuillez en installer une et réessayez."
PD32_DEFAULT_PRINTER "Imprimante par défaut ; "
PD32_DEFAULT_PRINTER "Imprimante par défaut ; "
PD32_NR_OF_DOCUMENTS_IN_QUEUE "Il y a %d documents dans la file d'attente"
PD32_MARGINS_IN_INCHES "Marges [pouces]"
PD32_MARGINS_IN_MILLIMETERS "Marges [mm]"
PD32_MARGINS_IN_INCHES "Marges (pouces]"
PD32_MARGINS_IN_MILLIMETERS "Marges (mm)"
PD32_MILLIMETERS "mm"
PD32_PRINTER_STATUS_READY "Prêt"
PD32_PRINTER_STATUS_PAUSED "Suspendu ; "
PD32_PRINTER_STATUS_ERROR "Erreur ; "
PD32_PRINTER_STATUS_PENDING_DELETION "En attente de suppression ; "
PD32_PRINTER_STATUS_PAPER_JAM "Bourrage papier ; "
PD32_PRINTER_STATUS_PAPER_OUT "Plus de papier ; "
PD32_PRINTER_STATUS_MANUAL_FEED "Insertion manuelle du papier ; "
PD32_PRINTER_STATUS_PAPER_PROBLEM "Problème de papier; "
PD32_PRINTER_STATUS_OFFLINE "L'imprimante n'est pas en ligne; "
PD32_PRINTER_STATUS_IO_ACTIVE "IO Active; "
PD32_PRINTER_STATUS_BUSY "Occupée; "
PD32_PRINTER_STATUS_PRINTING "En cours d'impression; "
PD32_PRINTER_STATUS_OUTPUT_BIN_FULL "Le bac de sortie est plein; "
PD32_PRINTER_STATUS_NOT_AVAILABLE "Non disponible ; "
PD32_PRINTER_STATUS_WAITING "En attente ; "
PD32_PRINTER_STATUS_PROCESSING "Traitement en cours ; "
PD32_PRINTER_STATUS_INITIALIZING "Démarrage en cours ; "
PD32_PRINTER_STATUS_WARMING_UP "Préchauffage ; "
PD32_PRINTER_STATUS_TONER_LOW "Toner presque vide ; "
PD32_PRINTER_STATUS_NO_TONER "Pas de toner ; "
PD32_PRINTER_STATUS_PAGE_PUNT "Abandon de page ; "
PD32_PRINTER_STATUS_USER_INTERVENTION "Annulé par utilisateur ; "
PD32_PRINTER_STATUS_OUT_OF_MEMORY "Plus assez de mémoire ; "
PD32_PRINTER_STATUS_DOOR_OPEN "La porte de l'imprimante est ouverte ; "
PD32_PRINTER_STATUS_SERVER_UNKNOWN "Serveur d'impression inconnu ; "
PD32_PRINTER_STATUS_POWER_SAVE "Mode économie d'énergie ; "
PD32_PRINTER_STATUS_READY "Prêt"
PD32_PRINTER_STATUS_PAUSED "Suspendu ; "
PD32_PRINTER_STATUS_ERROR "Erreur ; "
PD32_PRINTER_STATUS_PENDING_DELETION "En attente de suppression ; "
PD32_PRINTER_STATUS_PAPER_JAM "Bourrage papier ; "
PD32_PRINTER_STATUS_PAPER_OUT "Plus de papier ; "
PD32_PRINTER_STATUS_MANUAL_FEED "Insertion manuelle du papier ; "
PD32_PRINTER_STATUS_PAPER_PROBLEM "Problème de papier ; "
PD32_PRINTER_STATUS_OFFLINE "L'imprimante n'est pas en ligne ; "
PD32_PRINTER_STATUS_IO_ACTIVE "E/S Active ; "
PD32_PRINTER_STATUS_BUSY "Occupée ; "
PD32_PRINTER_STATUS_PRINTING "En cours d'impression ; "
PD32_PRINTER_STATUS_OUTPUT_BIN_FULL "Le bac de sortie est plein ; "
PD32_PRINTER_STATUS_NOT_AVAILABLE "Non disponible ; "
PD32_PRINTER_STATUS_WAITING "En attente ; "
PD32_PRINTER_STATUS_PROCESSING "Traitement en cours ; "
PD32_PRINTER_STATUS_INITIALIZING "Démarrage en cours ; "
PD32_PRINTER_STATUS_WARMING_UP "Préchauffage ; "
PD32_PRINTER_STATUS_TONER_LOW "Toner presque vide ; "
PD32_PRINTER_STATUS_NO_TONER "Pas de toner ; "
PD32_PRINTER_STATUS_PAGE_PUNT "Abandon de page ; "
PD32_PRINTER_STATUS_USER_INTERVENTION "Interrompu par utilisateur ; "
PD32_PRINTER_STATUS_OUT_OF_MEMORY "Plus assez de mémoire ; "
PD32_PRINTER_STATUS_DOOR_OPEN "La porte de l'imprimante est ouverte ; "
PD32_PRINTER_STATUS_SERVER_UNKNOWN "Serveur d'impression inconnu ; "
PD32_PRINTER_STATUS_POWER_SAVE "Mode économie d'énergie ; "
}
STRINGTABLE DISCARDABLE /* Font styles */
@@ -464,24 +471,24 @@ STRINGTABLE DISCARDABLE /* Color names */
IDS_COLOR_OLIVE "Olive"
IDS_COLOR_NAVY "Bleu marine"
IDS_COLOR_PURPLE "Pourpre"
IDS_COLOR_TEAL "Turquoise"
IDS_COLOR_TEAL "Sarcelle"
IDS_COLOR_GRAY "Gris"
IDS_COLOR_SILVER "Argent"
IDS_COLOR_RED "Rouge"
IDS_COLOR_LIME "Lime"
IDS_COLOR_LIME "Citron vert"
IDS_COLOR_YELLOW "Jaune"
IDS_COLOR_BLUE "Bleu"
IDS_COLOR_FUCHSIA "Fuchsia"
IDS_COLOR_AQUA "Aqua"
IDS_COLOR_AQUA "Eau"
IDS_COLOR_WHITE "Blanc"
}
STRINGTABLE DISCARDABLE
{
IDS_FONT_SIZE "Sélectionnez une taille de police entre %d et %d points."
IDS_SAVE_BUTTON "&Sauver"
IDS_SAVE_IN "Sauver &dans :"
IDS_FONT_SIZE "Sélectionnez une taille de police entre %d et %d points."
IDS_SAVE_BUTTON "&Enregistrer"
IDS_SAVE_IN "Enregistrer &dans :"
IDS_SAVE "Enregistrer"
IDS_SAVE_AS "Enregistrer sous"
IDS_OPEN_FILE "Ouvrir Fichier"
IDS_OPEN_FILE "Ouvrir fichier"
}
+3
View File
@@ -16,6 +16,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "cdlg.h"
#include "filedlgbrowser.h"
/*
* WARNING: DO NOT CHANGE THE SIZE OF THE STANDARD DIALOG TEMPLATES.
*/
+3
View File
@@ -18,6 +18,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "cdlg.h"
#include "filedlgbrowser.h"
/*
* WARNING: DO NOT CHANGE THE SIZE OF THE STANDARD DIALOG TEMPLATES.
*/
+3 -2
View File
@@ -16,6 +16,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "cdlg.h"
#include "filedlgbrowser.h"
/*
* WARNING: DO NOT CHANGE THE SIZE OF THE STANDARD DIALOG TEMPLATES.
*/
@@ -483,5 +486,3 @@ STRINGTABLE DISCARDABLE
IDS_SAVE_AS "名前を付けて保存"
IDS_OPEN_FILE "ファイルを開く"
}
#pragma code_page(default)
+3
View File
@@ -18,6 +18,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "cdlg.h"
#include "filedlgbrowser.h"
/*
* WARNING: DO NOT CHANGE THE SIZE OF THE STANDARD DIALOG TEMPLATES.
*/
+27 -27
View File
@@ -16,6 +16,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "cdlg.h"
#include "filedlgbrowser.h"
/*
* WARNING: DO NOT CHANGE THE SIZE OF THE STANDARD DIALOG TEMPLATES.
*/
@@ -76,14 +79,14 @@ FONT 8, "MS Shell Dlg"
{
LTEXT "Spausdintuvas:", 1088, 6, 6, 50, 9
LTEXT "", 1089, 60, 6, 150, 9
GROUPBOX "Spausdinimo intervalas", grp1, 6, 30, 160, 65, BS_GROUPBOX
GROUPBOX "Spausdinimo rėžis", grp1, 6, 30, 160, 65, BS_GROUPBOX
RADIOBUTTON "&Viskas", rad1, 16, 45, 60, 12
RADIOBUTTON "Pažymėtas &tekstas", rad2, 16, 60, 76, 12
RADIOBUTTON "&Puslapiai", rad3, 16, 75, 60, 12
DEFPUSHBUTTON "Spausdinti", 1, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Atsisakyti", 2, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Nuostatos", psh1, 206, 46, 56, 14, WS_GROUP | WS_TABSTOP
LTEXT "&nuo:", 1090, 60, 80, 30, 9
LTEXT "n&uo:", 1090, 60, 80, 30, 9
LTEXT "&iki:", 1091, 120, 80, 30, 9
LTEXT "Spausdinimo &kokybė:", 1092, 6, 100, 76, 9
COMBOBOX cmb1, 80, 100, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
@@ -144,7 +147,7 @@ FONT 8, "MS Shell Dlg"
CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP
GROUPBOX "Pavyzdys",grp2,98,72,120,36,WS_GROUP
CTEXT "AaĄąZzŽž",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE
LTEXT "Sim&bolių rinkinys:",stc7 ,98,114,60,9
LTEXT "Si&mbolių rinkinys:",stc7 ,98,114,60,9
COMBOBOX cmb5,98,124,120,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS |
CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
}
@@ -156,11 +159,11 @@ CAPTION "Spalva"
FONT 8, "MS Shell Dlg"
{
LTEXT "&Pagrindinės spalvos:", 1088, 4, 4, 140, 10
LTEXT "&Individualios spalvos:", 1089, 4, 106, 140, 10
LTEXT "Pr&itaikytos spalvos:", 1089, 4, 106, 140, 10
LTEXT "Spal. | Vient.", 1090, 150, 151, 48, 10
LTEXT "&Raudona:", 726 /*1094*/,243,126,32,10
EDITTEXT 706, 275,124,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP
LTEXT "&Žalia:",727/*1095*/,243,140,24,10
LTEXT "Ža&lia:",727/*1095*/,243,140,24,10
EDITTEXT 707, 275,138,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP
LTEXT "&Mėlyna:",728 /*1096*/,243,154,24,10
EDITTEXT 708, 275,152,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP
@@ -178,8 +181,8 @@ FONT 8, "MS Shell Dlg"
DEFPUSHBUTTON "Gerai", 1, 4, 166, 44, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Atsisakyti", 2, 52, 166, 44, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Žinynas", pshHelp,100,166, 44, 14
PUSHBUTTON "&Įdėti prie individualių spalvų", 712/*1024*/, 152, 166, 142, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "A&pibrėžti individualias spalvas >>", 719/*1025*/, 4, 150, 142, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Įdėti prie pritaikytų spalvų", 712/*1024*/, 152, 166, 142, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Api&brėžti pritaikytas spalvas >>", 719/*1025*/, 4, 150, 142, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&i",713,300,200,4,14 /* just a dummy: 'i' is like &i in "sol&id" */
}
@@ -195,7 +198,7 @@ FONT 8, "MS Shell Dlg"
CHECKBOX "Skirti raidžių &dydį", chx2, 4, 42, 70, 12, BS_AUTOCHECKBOX | WS_TABSTOP
GROUPBOX "Kryptis", grp1, 89, 26, 86, 28
CONTROL "&Aukštyn", rad1, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 93, 38, 40, 12
CONTROL "&Žemyn", rad2, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 134, 38, 36, 12
CONTROL "Ž&emyn", rad2, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 134, 38, 36, 12
DEFPUSHBUTTON "Ieškoti &kito", IDOK, 182, 5, 50, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON
PUSHBUTTON "Atsisakyti", IDCANCEL , 182, 23, 50, 14, WS_GROUP | WS_TABSTOP
@@ -210,7 +213,7 @@ FONT 8, "MS Shell Dlg"
{
LTEXT "Ko &ieškoti:", -1, 4, 9, 48, 8
EDITTEXT edt1, 54, 7, 114, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
LTEXT "Kuo pa&keisti:", -1, 4, 26, 48, 8
LTEXT "Kuo pak&eisti:", -1, 4, 26, 48, 8
EDITTEXT edt2, 54, 24, 114, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
CHECKBOX "Tenkina tik &visas žodis", chx1, 5, 46, 104, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "Skirti raidžių &dydį", chx2, 5, 62, 70, 12, BS_AUTOCHECKBOX | WS_TABSTOP
@@ -253,7 +256,7 @@ FONT 8, "MS Shell Dlg"
CONTROL "Su&dėst.", chx2,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,240,130,36,12
EDITTEXT edt3, 240,106, 32,12, WS_GROUP | ES_NUMBER
GROUPBOX "Intervalas", grp1, 8,92, 144,64, WS_GROUP
GROUPBOX "Rėžis", grp1, 8,92, 144,64, WS_GROUP
CONTROL "V&isi puslapiai", rad1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,16,106,64,12
CONTROL "Pu&slapiai", rad3,"Button",BS_AUTORADIOBUTTON,16,122,40,12
CONTROL "Pažymėtas &tekstas", rad2,"Button",BS_AUTORADIOBUTTON,16,138,72,12
@@ -309,7 +312,7 @@ BEGIN
GROUPBOX "Popierius", grp2, 8, 96, 224, 56, BS_GROUPBOX
LTEXT "&Dydis:", stc2, 16, 112, 36, 8
COMBOBOX cmb2, 64, 110, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL
LTEXT "Dė&klas:", stc3, 16, 132, 36, 8
LTEXT "Dėk&las:", stc3, 16, 132, 36, 8
COMBOBOX cmb3, 64, 130, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL
GROUPBOX "Padėtis", grp1, 8, 156, 64, 56, BS_GROUPBOX
AUTORADIOBUTTON "&Stačias", rad1, 16, 170, 52, 12, BS_AUTORADIOBUTTON
@@ -339,7 +342,7 @@ FONT 8, "MS Shell Dlg"
LTEXT "" , IDC_TOOLBARSTATIC, 181, 2, 102, 17, NOT WS_GROUP | NOT WS_VISIBLE
LISTBOX IDC_SHELLSTATIC,4,20,272,85, LBS_SORT | LBS_NOINTEGRALHEIGHT | LBS_MULTICOLUMN | WS_HSCROLL | NOT WS_VISIBLE
LTEXT "Failo &vardas:",IDC_FILENAMESTATIC,5,112,46,8, SS_NOTIFY
LTEXT "&Failo vardas:",IDC_FILENAMESTATIC,5,112,46,8, SS_NOTIFY
EDITTEXT IDC_FILENAME,54,110,155,12,ES_AUTOHSCROLL
LTEXT "Failų &tipai:",IDC_FILETYPESTATIC,5,128,42,8, SS_NOTIFY
@@ -392,25 +395,23 @@ STRINGTABLE DISCARDABLE
PD32_PRINT_TITLE "Spausdinti"
PD32_VALUE_UREADABLE "Neperskaitomas įrašas"
PD32_INVALID_PAGE_RANGE "Ši reikšmė nepatenka į puslapių intervalą.\n\
Prašome įvesti reikšmę tarp %d ir %d."
PD32_FROM_NOT_ABOVE_TO "'Nuo' reikšmė negali viršyti \
'iki' reikšmės."
PD32_MARGINS_OVERLAP "Paraštės persidengia arba išeina už \
popieriaus ribų.\nPrašome įvesti paraštes iš naujo."
PD32_NR_OF_COPIES_EMPTY "Skaitinė 'Kopijų skaičius' \
reikšmė negali būti tuščia."
PD32_TOO_LARGE_COPIES "Toks didelis kopijų skaičius yra \
nepalaikomas jūsų spausdintuvo.\nPrašome įvesti reikšmę tarp 1 ir %d."
PD32_INVALID_PAGE_RANGE "Ši reikšmė nepatenka į puslapių rėžį.\n\
Prašome įvesti reikšmę tarp %d ir %d."
PD32_FROM_NOT_ABOVE_TO "Nuo reikšmė negali viršyti „iki“ reikšmės."
PD32_MARGINS_OVERLAP "Paraštės persidengia arba išeina už popieriaus ribų.\n\
Prašome įvesti paraštes iš naujo."
PD32_NR_OF_COPIES_EMPTY "Skaitinė „kopijų skaičius reikšmė negali būti tuščia."
PD32_TOO_LARGE_COPIES "Toks didelis kopijų skaičius yra nepalaikomas jūsų spausdintuvo.\n\
Prašome įvesti reikšmę tarp 1 ir %d."
PD32_PRINT_ERROR "Įvyko spausdintuvo klaida."
PD32_NO_DEFAULT_PRINTER "Nenurodytas pagrindinis spausdintuvas."
PD32_CANT_FIND_PRINTER "Nepavyko rasti spausdintuvo."
PD32_OUT_OF_MEMORY "Baigėsi atmintis."
PD32_OUT_OF_MEMORY "Trūksta atminties."
PD32_GENERIC_ERROR "Įvyko klaida."
PD32_DRIVER_UNKNOWN "Nežinoma spausdintuvo tvarkyklė."
PD32_NO_DEVICES "Prieš atlikdami su spausdintuvu susijusius veiksmus, \
tokius kaip puslapio nuostatų keitimas ar dokumento spausdinimas, turite įdiegti spausdintuvą. \
Prašome įdeigti spausdintuvą ir pakartoti."
Prašome įdiegti spausdintuvą ir pakartoti."
PD32_DEFAULT_PRINTER "Pagrindinis spausdintuvas; "
PD32_NR_OF_DOCUMENTS_IN_QUEUE "Eilėje yra %d dokumentų"
@@ -440,7 +441,7 @@ Prašome įdeigti spausdintuvą ir pakartoti."
PD32_PRINTER_STATUS_NO_TONER "Nėra dažų; "
PD32_PRINTER_STATUS_PAGE_PUNT "Puslapis perkrautas; "
PD32_PRINTER_STATUS_USER_INTERVENTION "Pertraukta naudotojo; "
PD32_PRINTER_STATUS_OUT_OF_MEMORY "Baigėsi atmintis; "
PD32_PRINTER_STATUS_OUT_OF_MEMORY "Trūksta atminties; "
PD32_PRINTER_STATUS_DOOR_OPEN "Spausdintuvo durelės atidarytos; "
PD32_PRINTER_STATUS_SERVER_UNKNOWN "Spausdinimo serveris nežinomas; "
PD32_PRINTER_STATUS_POWER_SAVE "Energijos taupymo režimas; "
@@ -470,7 +471,7 @@ STRINGTABLE DISCARDABLE /* Color names */
IDS_COLOR_YELLOW "Geltona"
IDS_COLOR_BLUE "Mėlyna"
IDS_COLOR_FUCHSIA "Fuksija"
IDS_COLOR_AQUA "Akvarelinis cianas"
IDS_COLOR_AQUA "Žydra"
IDS_COLOR_WHITE "Balta"
}
@@ -483,4 +484,3 @@ STRINGTABLE DISCARDABLE
IDS_SAVE_AS "Išsaugoti kaip"
IDS_OPEN_FILE "Atverti failą"
}
#pragma code_page(default)
+4 -1
View File
@@ -17,6 +17,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "cdlg.h"
#include "filedlgbrowser.h"
/*
* WARNING: DO NOT CHANGE THE SIZE OF THE STANDARD DIALOG TEMPLATES.
*/
@@ -237,7 +240,7 @@ FONT 8, "MS Shell Dlg"
LTEXT "Bestands&typen:",IDC_FILETYPESTATIC,5,128,48,8, SS_NOTIFY
COMBOBOX IDC_FILETYPE,54,126,155,53,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
CONTROL "Openen met als kenmerk &Alleen-lezen",IDC_OPENREADONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,54,145,100,10
CONTROL "Openen met als kenmerk &Alleen-lezen",IDC_OPENREADONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,54,145,140,10
DEFPUSHBUTTON "&Openen", IDOK,222,110,50,14
PUSHBUTTON "Annuleren", IDCANCEL,222,128,50,14
+3
View File
@@ -16,6 +16,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "cdlg.h"
#include "filedlgbrowser.h"
/*
* WARNING: DO NOT CHANGE THE SIZE OF THE STANDARD DIALOG TEMPLATES.
*/
+3
View File
@@ -18,6 +18,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "cdlg.h"
#include "filedlgbrowser.h"
/*
* WARNING: DO NOT CHANGE THE SIZE OF THE STANDARD DIALOG TEMPLATES.
*/
+151 -136
View File
@@ -1,7 +1,8 @@
/*
* Copyright 1997 Ricardo R. Massaro
* Copyright 2003 Marcelo Duarte
* Copyright 2006-2007 Américo José Melo
* Copyright 2006-2007 Américo José Melo
* Copyright 2009 Ricardo Filipe
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -18,10 +19,15 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "cdlg.h"
#include "filedlgbrowser.h"
/*
* WARNING: DO NOT CHANGE THE SIZE OF THE STANDARD DIALOG TEMPLATES.
*/
#pragma code_page(65001)
LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134
@@ -32,7 +38,7 @@ FONT 8, "MS Shell Dlg"
LTEXT "Nome do &Arquivo:", 1090, 6, 6, 76, 9
EDITTEXT 1152, 6, 16, 90, 12, ES_AUTOHSCROLL | ES_OEMCONVERT | WS_BORDER | WS_TABSTOP
LISTBOX 1120, 6, 32, 90, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
LTEXT "&Diretórios:", -1, 110, 6, 92, 9
LTEXT "&Diretórios:", -1, 110, 6, 92, 9
LTEXT "", 1088, 110, 18, 92, 9, SS_NOPREFIX | WS_GROUP
LISTBOX 1121, 110, 32, 92, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
LTEXT "Listar Arquivos do &Tipo:", 1089, 6, 104, 90, 9
@@ -55,7 +61,7 @@ FONT 8, "MS Shell Dlg"
LTEXT "Nome do &Ficheiro:", 1090, 6, 6, 76, 9
EDITTEXT 1152, 6, 16, 90, 12, ES_AUTOHSCROLL | ES_OEMCONVERT | WS_BORDER | WS_TABSTOP
LISTBOX 1120, 6, 32, 90, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
LTEXT "&Directórios:", -1, 110, 6, 92, 9
LTEXT "&Directórios:", -1, 110, 6, 92, 9
LTEXT "", 1088, 110, 18, 92, 9, SS_NOPREFIX | WS_GROUP
LISTBOX 1121, 110, 32, 92, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
LTEXT "Listar Ficheiros do &Tipo:", 1089, 6, 104, 90, 9
@@ -79,7 +85,7 @@ FONT 8, "MS Shell Dlg"
LTEXT "Nome do &Arquivo:", 1090, 6, 6, 76, 9
EDITTEXT 1152, 6, 16, 90, 12, ES_AUTOHSCROLL | ES_OEMCONVERT | WS_BORDER | WS_TABSTOP
LISTBOX 1120, 6, 32, 90, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
LTEXT "&Diretórios:", -1, 110, 6, 92, 9
LTEXT "&Diretórios:", -1, 110, 6, 92, 9
LTEXT "", 1088, 110, 18, 92, 9, SS_NOPREFIX | WS_GROUP
LISTBOX 1121, 110, 32, 92, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
LTEXT "Listar Arquivos do &Tipo:", 1089, 6, 104, 90, 9
@@ -102,7 +108,7 @@ FONT 8, "MS Shell Dlg"
LTEXT "Nome do &Ficheiro:", 1090, 6, 6, 76, 9
EDITTEXT 1152, 6, 16, 90, 12, ES_AUTOHSCROLL | ES_OEMCONVERT | WS_BORDER | WS_TABSTOP
LISTBOX 1120, 6, 32, 90, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
LTEXT "&Directórios:", -1, 110, 6, 92, 9
LTEXT "&Directórios:", -1, 110, 6, 92, 9
LTEXT "", 1088, 110, 18, 92, 9, SS_NOPREFIX | WS_GROUP
LISTBOX 1121, 110, 32, 92, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
LTEXT "Listar Ficheiros do &Tipo:", 1089, 6, 104, 90, 9
@@ -125,16 +131,16 @@ FONT 8, "MS Shell Dlg"
{
LTEXT "Impressora:", 1088, 6, 6, 40, 9
LTEXT "", 1089, 60, 6, 150, 9
GROUPBOX "Faixa de Impressão", 1072, 6, 30, 160, 65, BS_GROUPBOX
GROUPBOX "Faixa de Impressão", 1072, 6, 30, 160, 65, BS_GROUPBOX
RADIOBUTTON "&Tudo", 1056, 16, 45, 60, 12
RADIOBUTTON "S&eleção", 1057, 16, 60, 60, 12
RADIOBUTTON "&Páginas", 1058, 16, 75, 60, 12
RADIOBUTTON "S&eleção", 1057, 16, 60, 60, 12
RADIOBUTTON "&Páginas", 1058, 16, 75, 60, 12
DEFPUSHBUTTON "Imprimir", IDOK, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cancelar", IDCANCEL, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Configurar", 1024, 206, 46, 56, 14, WS_GROUP | WS_TABSTOP
LTEXT "&De:", 1090, 60, 80, 30, 9
LTEXT "&Ate:", 1091, 120, 80, 30, 9
LTEXT "&Qualidade de Impressão:", 1092, 6, 100, 76, 9
LTEXT "&Qualidade de Impressão:", 1092, 6, 100, 76, 9
COMBOBOX 1136, 80, 100, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
CHECKBOX "Imprimir para Arquivo", 1040, 20, 100, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "C&ondensado", 1041, 160, 100, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
@@ -149,16 +155,16 @@ FONT 8, "MS Shell Dlg"
{
LTEXT "Impressora:", 1088, 6, 6, 40, 9
LTEXT "", 1089, 60, 6, 150, 9
GROUPBOX "Faixa de Impressão", 1072, 6, 30, 160, 65, BS_GROUPBOX
GROUPBOX "Faixa de Impressão", 1072, 6, 30, 160, 65, BS_GROUPBOX
RADIOBUTTON "&Tudo", 1056, 16, 45, 60, 12
RADIOBUTTON "S&elecção", 1057, 16, 60, 60, 12
RADIOBUTTON "&Páginas", 1058, 16, 75, 60, 12
RADIOBUTTON "S&elecção", 1057, 16, 60, 60, 12
RADIOBUTTON "&Páginas", 1058, 16, 75, 60, 12
DEFPUSHBUTTON "Imprimir", IDOK, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cancelar", IDCANCEL, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Configurar", 1024, 206, 46, 56, 14, WS_GROUP | WS_TABSTOP
LTEXT "&De:", 1090, 60, 80, 30, 9
LTEXT "&Até:", 1091, 120, 80, 30, 9
LTEXT "&Qualidade de Impressão:", 1092, 6, 100, 76, 9
LTEXT "&Até:", 1091, 120, 80, 30, 9
LTEXT "&Qualidade de Impressão:", 1092, 6, 100, 76, 9
COMBOBOX 1136, 80, 100, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
CHECKBOX "Imprimir para Ficheiro", 1040, 20, 100, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "C&ondensado", 1041, 160, 100, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
@@ -169,25 +175,25 @@ LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Configurações de Impressão"
CAPTION "Configurações de Impressão"
FONT 8, "MS Shell Dlg"
{
GROUPBOX "Impressora", 1072, 6, 10, 180, 65, BS_GROUPBOX
RADIOBUTTON "&Impressora Padrão", 1056, 16, 20, 80, 12
RADIOBUTTON "&Impressora Padrão", 1056, 16, 20, 80, 12
LTEXT "[none]", 1088, 35, 35, 120, 9
RADIOBUTTON "Impressora &Específica", 1057, 16, 50, 80, 12
RADIOBUTTON "Impressora &Específica", 1057, 16, 50, 80, 12
COMBOBOX 1136, 35, 65, 149, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
DEFPUSHBUTTON "OK", IDOK, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cancelar", IDCANCEL, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Configurar", 1024, 206, 46, 56, 14, WS_GROUP | WS_TABSTOP
GROUPBOX "Orientação", 1073, 6, 85, 100, 50, BS_GROUPBOX
GROUPBOX "Orientação", 1073, 6, 85, 100, 50, BS_GROUPBOX
RADIOBUTTON "&Retrato", 1058, 50, 100, 40, 12
RADIOBUTTON "&Paisagem", 1059, 50, 115, 40, 12
ICON "LANDSCAP", 1097, 10, 95, 32, 32
ICON "PORTRAIT", 1098, 10, 95, 32, 32
GROUPBOX "Papel", 1074, 120, 85, 180, 50, BS_GROUPBOX
LTEXT "&Tamanho", 1089, 130, 95, 30, 9
LTEXT "&Fonte de Alimentação", 1090, 130, 110, 30, 9
LTEXT "&Fonte de Alimentação", 1090, 130, 110, 30, 9
COMBOBOX 1137, 155, 95, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
COMBOBOX 1138, 155, 110, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
}
@@ -196,25 +202,25 @@ LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE
PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Configurações de Impressão"
CAPTION "Configurações de Impressão"
FONT 8, "MS Shell Dlg"
{
GROUPBOX "Impressora", 1072, 6, 10, 180, 65, BS_GROUPBOX
RADIOBUTTON "&Impressora Predefinida", 1056, 16, 20, 80, 12
LTEXT "[none]", 1088, 35, 35, 120, 9
RADIOBUTTON "Impressora &Específica", 1057, 16, 50, 80, 12
RADIOBUTTON "Impressora &Específica", 1057, 16, 50, 80, 12
COMBOBOX 1136, 35, 65, 149, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
DEFPUSHBUTTON "OK", IDOK, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cancelar", IDCANCEL, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Configurar", 1024, 206, 46, 56, 14, WS_GROUP | WS_TABSTOP
GROUPBOX "Orientação", 1073, 6, 85, 100, 50, BS_GROUPBOX
GROUPBOX "Orientação", 1073, 6, 85, 100, 50, BS_GROUPBOX
RADIOBUTTON "&Retrato", 1058, 50, 100, 40, 12
RADIOBUTTON "&Paisagem", 1059, 50, 115, 40, 12
ICON "LANDSCAP", 1097, 10, 95, 32, 32
ICON "PORTRAIT", 1098, 10, 95, 32, 32
GROUPBOX "Papel", 1074, 120, 85, 180, 50, BS_GROUPBOX
LTEXT "&Tamanho", 1089, 130, 95, 30, 9
LTEXT "&Fonte de Alimentação", 1090, 130, 110, 30, 9
LTEXT "&Fonte de Alimentação", 1090, 130, 110, 30, 9
COMBOBOX 1137, 155, 95, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
COMBOBOX 1138, 155, 110, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
}
@@ -295,9 +301,9 @@ STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Cor"
FONT 8, "MS Shell Dlg"
{
LTEXT "Cores &Básicas:", 1088, 4, 4, 140, 10
LTEXT "&Cores do Usuário:", 1089, 4, 106, 140, 10
LTEXT "Colorido|Sólid&o", 1090, 150, 151, 48, 10
LTEXT "Cores &Básicas:", 1088, 4, 4, 140, 10
LTEXT "&Cores do Usuário:", 1089, 4, 106, 140, 10
LTEXT "Colorido|Sólid&o", 1090, 150, 151, 48, 10
LTEXT "Ver&melho:", 726 /*1094*/,249,126,24,10
EDITTEXT 706, 275,124,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP
LTEXT "&Verde:",727/*1095*/,249,140,24,10
@@ -330,9 +336,9 @@ STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Cor"
FONT 8, "MS Shell Dlg"
{
LTEXT "Cores &Básicas:", 1088, 4, 4, 140, 10
LTEXT "Cores &Básicas:", 1088, 4, 4, 140, 10
LTEXT "&Cores do Utilizador:", 1089, 4, 106, 140, 10
LTEXT "Colorido|Sólid&o", 1090, 150, 151, 48, 10
LTEXT "Colorido|Sólid&o", 1090, 150, 151, 48, 10
LTEXT "Ver&melho:", 726 /*1094*/,249,126,24,10
EDITTEXT 706, 275,124,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP
LTEXT "&Verde:",727/*1095*/,249,140,24,10
@@ -368,12 +374,12 @@ FONT 8, "MS Shell Dlg"
LTEXT "&Procurar:", -1, 4, 8, 42, 8
EDITTEXT 1152, 47, 7, 128, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
CHECKBOX "Palavra &Inteira", 1040, 4, 26, 100, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "&Maiúsculas/minusculas", 1041, 4, 42, 64, 12, BS_AUTOCHECKBOX | WS_TABSTOP
GROUPBOX "Direção", 1072, 107, 26, 68, 28
CHECKBOX "&Maiúsculas/minusculas", 1041, 4, 42, 64, 12, BS_AUTOCHECKBOX | WS_TABSTOP
GROUPBOX "Direção", 1072, 107, 26, 68, 28
CONTROL "A&cima", 1056, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 111, 38, 20, 12
CONTROL "A&baixo", 1057, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 138, 38, 30, 12
DEFPUSHBUTTON "Procurar a Pró&xima", IDOK, 182, 5, 50, 14, WS_GROUP | WS_TABSTOP
DEFPUSHBUTTON "Procurar a Pró&xima", IDOK, 182, 5, 50, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cancelar", IDCANCEL, 182, 23, 50, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "A&juda", 1038, 182, 45, 50, 14, WS_GROUP | WS_TABSTOP
}
@@ -388,12 +394,12 @@ FONT 8, "MS Shell Dlg"
LTEXT "&Procurar:", -1, 4, 8, 42, 8
EDITTEXT 1152, 47, 7, 128, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
CHECKBOX "Palavra &Inteira", 1040, 4, 26, 100, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "&Maiúsculas/minúsculas", 1041, 4, 42, 64, 12, BS_AUTOCHECKBOX | WS_TABSTOP
GROUPBOX "Direcção", 1072, 107, 26, 68, 28
CHECKBOX "&Maiúsculas/minúsculas", 1041, 4, 42, 64, 12, BS_AUTOCHECKBOX | WS_TABSTOP
GROUPBOX "Direcção", 1072, 107, 26, 68, 28
CONTROL "A&cima", 1056, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 111, 38, 20, 12
CONTROL "A&baixo", 1057, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 138, 38, 30, 12
DEFPUSHBUTTON "&Procurar Próximo", IDOK, 182, 5, 50, 14, WS_GROUP | WS_TABSTOP
DEFPUSHBUTTON "&Procurar Próximo", IDOK, 182, 5, 50, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cancelar", IDCANCEL, 182, 23, 50, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "A&juda", 1038, 182, 45, 50, 14, WS_GROUP | WS_TABSTOP
}
@@ -411,9 +417,9 @@ FONT 8, "MS Shell Dlg"
LTEXT "Substituir Pa&ra:", -1, 4, 26, 48, 8
EDITTEXT 1153, 54, 24, 114, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
CHECKBOX "Palavra &inteira", 1040, 5, 46, 104, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "&Maiúsculas/minúsculas", 1041, 5, 62, 59, 12, BS_AUTOCHECKBOX | WS_TABSTOP
CHECKBOX "&Maiúsculas/minúsculas", 1041, 5, 62, 59, 12, BS_AUTOCHECKBOX | WS_TABSTOP
DEFPUSHBUTTON "Procurar a Pró&xima", IDOK, 174, 4, 50, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON
DEFPUSHBUTTON "Procurar a Pró&xima", IDOK, 174, 4, 50, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON
PUSHBUTTON "&Substituir", psh1, 174, 21, 50, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Substituir &Todas", psh2, 174, 38, 50, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cancelar", IDCANCEL, 174, 55, 50, 14, WS_GROUP | WS_TABSTOP
@@ -432,9 +438,9 @@ FONT 8, "MS Shell Dlg"
LTEXT "Substituir Pa&ra:", -1, 4, 26, 48, 8
EDITTEXT 1153, 54, 24, 114, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
CHECKBOX "Palavra &inteira", 1040, 5, 46, 104, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "&Maiúsculas/minúsculas", 1041, 5, 62, 59, 12, BS_AUTOCHECKBOX | WS_TABSTOP
CHECKBOX "&Maiúsculas/minúsculas", 1041, 5, 62, 59, 12, BS_AUTOCHECKBOX | WS_TABSTOP
DEFPUSHBUTTON "Procurar Próxima", IDOK, 174, 4, 50, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON
DEFPUSHBUTTON "Procurar Próxima", IDOK, 174, 4, 50, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON
PUSHBUTTON "&Substituir", psh1, 174, 21, 50, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Substituir &Todas", psh2, 174, 38, 50, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cancelar", IDCANCEL, 174, 55, 50, 14, WS_GROUP | WS_TABSTOP
@@ -465,23 +471,23 @@ FONT 8, "MS Shell Dlg"
LTEXT "Dummy Type", stc11, 52, 48, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Onde:", stc10, 16, 60, 36,10, SS_NOPREFIX
LTEXT "Dummy Location", stc14, 52, 60, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Comentário:", stc9, 16, 72, 36,10, SS_NOPREFIX
LTEXT "Comentário:", stc9, 16, 72, 36,10, SS_NOPREFIX
LTEXT "Dummy Remark", stc13, 52, 72, 152,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
GROUPBOX "Cópias", grp2, 160, 92, 120,64, WS_GROUP
LTEXT "Número de &cópias:", stc5, 168,108, 68, 8
GROUPBOX "Cópias", grp2, 160, 92, 120,64, WS_GROUP
LTEXT "Número de &cópias:", stc5, 168,108, 68, 8
ICON "", ico3, 162,124, 76,24, WS_GROUP | SS_CENTERIMAGE
CONTROL "&Agrupar", chx2,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,240,130,36,12
EDITTEXT edt3, 240,106, 32,12, WS_GROUP | ES_NUMBER
GROUPBOX "Faixa de impressão", grp1, 8,92, 144,64, WS_GROUP
GROUPBOX "Faixa de impressão", grp1, 8,92, 144,64, WS_GROUP
CONTROL "&Todos", rad1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,16,106,64,12
CONTROL "Pá&ginas", rad3,"Button",BS_AUTORADIOBUTTON,16,122,36,12
CONTROL "Seleção", rad2,"Button",BS_AUTORADIOBUTTON,16,138,64,12
CONTROL "Pá&ginas", rad3,"Button",BS_AUTORADIOBUTTON,16,122,36,12
CONTROL "Seleção", rad2,"Button",BS_AUTORADIOBUTTON,16,138,64,12
EDITTEXT edt1, 74,122, 26,12, WS_GROUP | ES_NUMBER
EDITTEXT edt2, 118,122, 26,12, WS_GROUP | ES_NUMBER
RTEXT "&de:", stc2, 52,124, 20,8
RTEXT "&até:", stc3, 100,124, 16,8
RTEXT "&até:", stc3, 100,124, 16,8
}
LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE
@@ -505,25 +511,25 @@ FONT 8, "MS Shell Dlg"
LTEXT "Estado 'Dummy'", stc12, 52, 36, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Tipo:", stc7, 16, 48, 36,10, SS_NOPREFIX
LTEXT "Tipo 'Dummy'", stc11, 52, 48, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Localizaça:", stc10, 16, 60, 36,10, SS_NOPREFIX
LTEXT "Localizaçao 'Dummy'", stc14, 52, 60, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Comentário:", stc9, 16, 72, 36,10, SS_NOPREFIX
LTEXT "Comentário 'Dummy'", stc13, 52, 72, 152,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Localizaça:", stc10, 16, 60, 36,10, SS_NOPREFIX
LTEXT "Localizaçao 'Dummy'", stc14, 52, 60, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Comentário:", stc9, 16, 72, 36,10, SS_NOPREFIX
LTEXT "Comentário 'Dummy'", stc13, 52, 72, 152,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
GROUPBOX "Cópias", grp2, 160, 92, 120,64, WS_GROUP
LTEXT "Número de &cópias:", stc5, 168,108, 68, 8
GROUPBOX "Cópias", grp2, 160, 92, 120,64, WS_GROUP
LTEXT "Número de &cópias:", stc5, 168,108, 68, 8
ICON "", ico3, 162,124, 76,24, WS_GROUP | SS_CENTERIMAGE
CONTROL "&Agrupar", chx2,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,240,130,36,12
EDITTEXT edt3, 240,106, 32,12, WS_GROUP | ES_NUMBER
GROUPBOX "Faixa de impressão", grp1, 8,92, 144,64, WS_GROUP
GROUPBOX "Faixa de impressão", grp1, 8,92, 144,64, WS_GROUP
CONTROL "&Todos", rad1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,16,106,64,12
CONTROL "Páginas", rad3,"Button",BS_AUTORADIOBUTTON,16,122,36,12
CONTROL "Selecção", rad2,"Button",BS_AUTORADIOBUTTON,16,138,64,12
CONTROL "Páginas", rad3,"Button",BS_AUTORADIOBUTTON,16,122,36,12
CONTROL "Selecção", rad2,"Button",BS_AUTORADIOBUTTON,16,138,64,12
EDITTEXT edt1, 74,122, 26,12, WS_GROUP | ES_NUMBER
EDITTEXT edt2, 118,122, 26,12, WS_GROUP | ES_NUMBER
RTEXT "&de:", stc2, 52,124, 20,8
RTEXT "&até", stc3, 100,124, 16,8
RTEXT "&até", stc3, 100,124, 16,8
}
@@ -532,7 +538,7 @@ LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
PRINT32_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 178
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU |
DS_CONTEXTHELP | DS_3DLOOK
CAPTION "Configurações de Impressão"
CAPTION "Configurações de Impressão"
FONT 8, "MS Shell Dlg"
BEGIN
DEFPUSHBUTTON "OK", IDOK,180,156,50,14,WS_GROUP
@@ -549,7 +555,7 @@ BEGIN
LTEXT "Dummy Type", stc11, 52, 48, 224, 10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Onde:", stc10, 16, 60, 36, 10, SS_NOPREFIX
LTEXT "Dummy Location", stc14, 52, 60, 224, 10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Comentário", stc9, 16, 72, 36, 10, SS_NOPREFIX
LTEXT "Comentário", stc9, 16, 72, 36, 10, SS_NOPREFIX
LTEXT "Dummy Remark", stc13, 52, 72, 224, 10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
GROUPBOX "Papel", grp2, 8, 92, 164, 56, WS_GROUP
@@ -558,7 +564,7 @@ BEGIN
LTEXT "&Origem:", stc3, 16, 128, 36, 8
COMBOBOX cmb3, 52, 126, 112, 112, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP
GROUPBOX "Orientação", grp1, 180, 92, 100, 56, WS_GROUP
GROUPBOX "Orientação", grp1, 180, 92, 100, 56, WS_GROUP
ICON "", ico1, 195, 112, 18, 20, WS_GROUP
CONTROL "&Retrato", rad1, "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 224, 106, 52, 12
CONTROL "&Paisagem", rad2, "Button", BS_AUTORADIOBUTTON, 224, 126, 52, 12
@@ -569,7 +575,7 @@ LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE
PRINT32_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 178
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU |
DS_CONTEXTHELP | DS_3DLOOK
CAPTION "Configuração de Impressão"
CAPTION "Configuração de Impressão"
FONT 8, "MS Shell Dlg"
BEGIN
DEFPUSHBUTTON "OK", IDOK,180,156,50,14,WS_GROUP
@@ -584,10 +590,10 @@ BEGIN
LTEXT "EStado 'Dummy'", stc12, 52, 36, 224, 10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Tipo:", stc7, 16, 48, 36, 10, SS_NOPREFIX
LTEXT "Tipo 'Dummy'", stc11, 52, 48, 224, 10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Localização:", stc10, 16, 60, 36, 10, SS_NOPREFIX
LTEXT "Localização 'Dummy'", stc14, 52, 60, 224, 10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Comentário", stc9, 16, 72, 36, 10, SS_NOPREFIX
LTEXT "Comentário 'Dummy'", stc13, 52, 72, 224, 10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Localização:", stc10, 16, 60, 36, 10, SS_NOPREFIX
LTEXT "Localização 'Dummy'", stc14, 52, 60, 224, 10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Comentário", stc9, 16, 72, 36, 10, SS_NOPREFIX
LTEXT "Comentário 'Dummy'", stc13, 52, 72, 224, 10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
GROUPBOX "Papel", grp2, 8, 92, 164, 56, WS_GROUP
LTEXT "&Tamanho:", stc2, 16, 108, 36, 8
@@ -595,7 +601,7 @@ BEGIN
LTEXT "&Origem:", stc3, 16, 128, 36, 8
COMBOBOX cmb3, 52, 126, 112, 112, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP
GROUPBOX "Orientação", grp1, 180, 92, 100, 56, WS_GROUP
GROUPBOX "Orientação", grp1, 180, 92, 100, 56, WS_GROUP
ICON "", ico1, 195, 112, 18, 20, WS_GROUP
CONTROL "&Retrato", rad1, "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 224, 106, 52, 12
CONTROL "&Paisagem", rad2, "Button", BS_AUTORADIOBUTTON, 224, 126, 52, 12
@@ -606,7 +612,7 @@ LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 240, 240
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Configurações de Página"
CAPTION "Configurações de Página"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "", rct1, "Static", SS_WHITERECT, 80, 8, 80, 80
@@ -617,7 +623,7 @@ BEGIN
COMBOBOX cmb2, 64, 110, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL
LTEXT "&Bandeja:", stc3, 16, 132, 36, 8
COMBOBOX cmb3, 64, 130, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL
GROUPBOX "Orientação", grp1, 8, 156, 64, 56, BS_GROUPBOX
GROUPBOX "Orientação", grp1, 8, 156, 64, 56, BS_GROUPBOX
AUTORADIOBUTTON "&Retrato", rad1, 16, 170, 52, 12, BS_AUTORADIOBUTTON
AUTORADIOBUTTON "&Paisagem", rad2, 16, 190, 52, 12, BS_AUTORADIOBUTTON
GROUPBOX "Bordas", grp4, 80, 156, 152, 56, BS_GROUPBOX
@@ -638,7 +644,7 @@ LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE
PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 240, 240
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Configurações de Página"
CAPTION "Configurações de Página"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "", rct1, "Static", SS_WHITERECT, 80, 8, 80, 80
@@ -649,7 +655,7 @@ BEGIN
COMBOBOX cmb2, 64, 110, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL
LTEXT "&Bandeja:", stc3, 16, 132, 36, 8
COMBOBOX cmb3, 64, 130, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL
GROUPBOX "Orientação", grp1, 8, 156, 64, 56, BS_GROUPBOX
GROUPBOX "Orientação", grp1, 8, 156, 64, 56, BS_GROUPBOX
AUTORADIOBUTTON "&Retrato", rad1, 16, 170, 52, 12, BS_AUTORADIOBUTTON
AUTORADIOBUTTON "&Paisagem", rad2, 16, 190, 52, 12, BS_AUTORADIOBUTTON
GROUPBOX "Bordas", grp4, 80, 156, 152, 56, BS_GROUPBOX
@@ -729,7 +735,7 @@ STRINGTABLE DISCARDABLE
IDS_PERSONAL "Meus Documentos"
IDS_FAVORITES "Favoritos"
IDS_PATH "Caminho do Sistema"
IDS_DESKTOP "Área de Trabalho"
IDS_DESKTOP "Área de Trabalho"
IDS_FONTS "Fontes"
IDS_MYCOMPUTER "Meu Computador"
}
@@ -742,8 +748,8 @@ STRINGTABLE DISCARDABLE
IDS_DOCUMENTFOLDERS "Pastas de Documentos"
IDS_PERSONAL "Os Meus Documentos"
IDS_FAVORITES "Favoritos"
IDS_PATH "Localização do Sistema"
IDS_DESKTOP "Ecrã"
IDS_PATH "Localização do Sistema"
IDS_DESKTOP "Ecrã"
IDS_FONTS "Tipos de Letra"
IDS_MYCOMPUTER "O Meu Computador"
}
@@ -754,15 +760,15 @@ LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
STRINGTABLE DISCARDABLE
{
IDS_SYSTEMFOLDERS "Pastas do Sistema"
IDS_LOCALHARDRIVES "Discos Rígidos Locais"
IDS_FILENOTFOUND "Arquivo não encontrado"
IDS_LOCALHARDRIVES "Discos Rígidos Locais"
IDS_FILENOTFOUND "Arquivo não encontrado"
IDS_VERIFYFILE "Por favor verifique se foi fornecido o nome correto do arquivo"
IDS_CREATEFILE "Arquivo não existe\nVocê gostaria de cria-lo"
IDS_OVERWRITEFILE "Arquivo já existe.\nGostaria de substituí-lo?"
IDS_INVALID_FILENAME_TITLE "Caracter(es) inválidos no caminho"
IDS_INVALID_FILENAME "Um nome de arquivo não pode conter quaisquer dos seguintes caracteres:\n / : < > |"
IDS_PATHNOTEXISTING "Caminho não existe"
IDS_FILENOTEXISTING "Arquivo não existe"
IDS_CREATEFILE "Arquivo não existe\nVocê gostaria de cria-lo"
IDS_OVERWRITEFILE "Arquivo já existe.\nGostaria de substituí-lo?"
IDS_INVALID_FILENAME_TITLE "Caracter(es) inválidos no caminho"
IDS_INVALID_FILENAME "Um nome de arquivo não pode conter quaisquer dos seguintes caracteres:\n / : < > |"
IDS_PATHNOTEXISTING "Caminho não existe"
IDS_FILENOTEXISTING "Arquivo não existe"
}
LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE
@@ -770,15 +776,15 @@ LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE
STRINGTABLE DISCARDABLE
{
IDS_SYSTEMFOLDERS "Pastas do Sistema"
IDS_LOCALHARDRIVES "Discos Rígidos Locais"
IDS_FILENOTFOUND "Ficheiro não encontrado"
IDS_LOCALHARDRIVES "Discos Rígidos Locais"
IDS_FILENOTFOUND "Ficheiro não encontrado"
IDS_VERIFYFILE "Por favor verifique se foi fornecido o nome correcto do ficheiro"
IDS_CREATEFILE "O ficheiro não existe\nGostaria de o criar"
IDS_OVERWRITEFILE "O ficheiro já existe.\nGostaria de o substituir?"
IDS_INVALID_FILENAME_TITLE "Caracter(es) inválidos na localização"
IDS_INVALID_FILENAME "Um nome de ficheiro não pode conter quaisquer dos seguintes caracteres:\n / : < > |"
IDS_PATHNOTEXISTING "A localização não existe"
IDS_FILENOTEXISTING "O ficheiro não existe"
IDS_CREATEFILE "O ficheiro não existe\nGostaria de o criar"
IDS_OVERWRITEFILE "O ficheiro já existe.\nGostaria de o substituir?"
IDS_INVALID_FILENAME_TITLE "Caracter(es) inválidos na localização"
IDS_INVALID_FILENAME "Um nome de ficheiro não pode conter quaisquer dos seguintes caracteres:\n / : < > |"
IDS_PATHNOTEXISTING "A localização não existe"
IDS_FILENOTEXISTING "O ficheiro não existe"
}
@@ -786,22 +792,22 @@ LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
STRINGTABLE DISCARDABLE
{
IDS_UPFOLDER "Um Nível Acima"
IDS_UPFOLDER "Um Nível Acima"
IDS_NEWFOLDER "Criar Nova Pasta"
IDS_LISTVIEW "Lista"
IDS_REPORTVIEW "Detalhes"
IDS_TODESKTOP "Área de Trabalho"
IDS_TODESKTOP "Área de Trabalho"
}
LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE
STRINGTABLE DISCARDABLE
{
IDS_UPFOLDER "Um Nível Acima"
IDS_UPFOLDER "Um Nível Acima"
IDS_NEWFOLDER "Criar Nova Pasta"
IDS_LISTVIEW "Lista"
IDS_REPORTVIEW "Detalhes"
IDS_TODESKTOP "Ecrã"
IDS_TODESKTOP "Ecrã"
}
@@ -811,26 +817,26 @@ STRINGTABLE DISCARDABLE
{
PD32_PRINT_TITLE "Imprimir"
PD32_VALUE_UREADABLE "Entrada Ilegível"
PD32_INVALID_PAGE_RANGE "Este valor não se encaixa na faixa de páginas\n\
PD32_VALUE_UREADABLE "Entrada Ilegível"
PD32_INVALID_PAGE_RANGE "Este valor não se encaixa na faixa de páginas\n\
Por favor entre um valor entre %d e %d."
PD32_FROM_NOT_ABOVE_TO "A entrada DE não pode exceder ATÉ."
PD32_MARGINS_OVERLAP "As margens estão fora das medidas \
PD32_FROM_NOT_ABOVE_TO "A entrada DE não pode exceder ATÉ."
PD32_MARGINS_OVERLAP "As margens estão fora das medidas \
do papel.\nPor favor reentre as margens."
PD32_NR_OF_COPIES_EMPTY "O número de cópias não pode ter valor vazio."
PD32_TOO_LARGE_COPIES "Esta grande quantidade de cópias não é suportada \
PD32_NR_OF_COPIES_EMPTY "O número de cópias não pode ter valor vazio."
PD32_TOO_LARGE_COPIES "Esta grande quantidade de cópias não é suportada \
pela sua impressora.\nPor favor entre um valor entre 1 e %d."
PD32_PRINT_ERROR "Ocorreu um erro de impressão."
PD32_NO_DEFAULT_PRINTER "Não existe uma impressora padrão."
PD32_CANT_FIND_PRINTER "Não é possível encontrar uma impressora."
PD32_OUT_OF_MEMORY "Memória insuficiente."
PD32_PRINT_ERROR "Ocorreu um erro de impressão."
PD32_NO_DEFAULT_PRINTER "Não existe uma impressora padrão."
PD32_CANT_FIND_PRINTER "Não é possível encontrar uma impressora."
PD32_OUT_OF_MEMORY "Memória insuficiente."
PD32_GENERIC_ERROR "Ocorreu algum erro."
PD32_DRIVER_UNKNOWN "Driver de impressora desconhecido."
PD32_NO_DEVICES "Before you can perform printer-related tasks \
such as page setup or printing a document, you need to install a printer. \
Please install one and retry."
PD32_DEFAULT_PRINTER "Impressora Padrão; "
PD32_DEFAULT_PRINTER "Impressora Padrão; "
PD32_NR_OF_DOCUMENTS_IN_QUEUE "Existem %d documentos na fila"
PD32_MARGINS_IN_INCHES "Margens [polegadas]"
PD32_MARGINS_IN_MILLIMETERS "Margens [mm]"
@@ -839,29 +845,29 @@ Please install one and retry."
PD32_PRINTER_STATUS_READY "Pronto"
PD32_PRINTER_STATUS_PAUSED "Pausada; "
PD32_PRINTER_STATUS_ERROR "Erro; "
PD32_PRINTER_STATUS_PENDING_DELETION "Exclusão pendente; "
PD32_PRINTER_STATUS_PENDING_DELETION "Exclusão pendente; "
PD32_PRINTER_STATUS_PAPER_JAM "Papel atolado; "
PD32_PRINTER_STATUS_PAPER_OUT "Sem papel; "
PD32_PRINTER_STATUS_MANUAL_FEED "Alimentação manual; "
PD32_PRINTER_STATUS_MANUAL_FEED "Alimentação manual; "
PD32_PRINTER_STATUS_PAPER_PROBLEM "Problemas com o papel; "
PD32_PRINTER_STATUS_OFFLINE "Impressora desligada; "
PD32_PRINTER_STATUS_IO_ACTIVE "E/S Ativa; "
PD32_PRINTER_STATUS_BUSY "Ocupada; "
PD32_PRINTER_STATUS_PRINTING "Imprimindo; "
PD32_PRINTER_STATUS_OUTPUT_BIN_FULL "Bandeja de saída está cheia; "
PD32_PRINTER_STATUS_NOT_AVAILABLE "Não disponível; "
PD32_PRINTER_STATUS_OUTPUT_BIN_FULL "Bandeja de saída está cheia; "
PD32_PRINTER_STATUS_NOT_AVAILABLE "Não disponível; "
PD32_PRINTER_STATUS_WAITING "Esperando; "
PD32_PRINTER_STATUS_PROCESSING "Processando; "
PD32_PRINTER_STATUS_INITIALIZING "Inicializando; "
PD32_PRINTER_STATUS_WARMING_UP "Aquecendo; "
PD32_PRINTER_STATUS_TONER_LOW "Pouco toner; "
PD32_PRINTER_STATUS_NO_TONER "Sem toner; "
PD32_PRINTER_STATUS_PAGE_PUNT "Lançar página; "
PD32_PRINTER_STATUS_USER_INTERVENTION "Intervenção do usuário; "
PD32_PRINTER_STATUS_OUT_OF_MEMORY "Memória insuficiente; "
PD32_PRINTER_STATUS_DOOR_OPEN "A impressora está aberta; "
PD32_PRINTER_STATUS_SERVER_UNKNOWN "Servidor de impressão desconhecido; "
PD32_PRINTER_STATUS_POWER_SAVE "Modo econômico; "
PD32_PRINTER_STATUS_PAGE_PUNT "Lançar página; "
PD32_PRINTER_STATUS_USER_INTERVENTION "Intervenção do usuário; "
PD32_PRINTER_STATUS_OUT_OF_MEMORY "Memória insuficiente; "
PD32_PRINTER_STATUS_DOOR_OPEN "A impressora está aberta; "
PD32_PRINTER_STATUS_SERVER_UNKNOWN "Servidor de impressão desconhecido; "
PD32_PRINTER_STATUS_POWER_SAVE "Modo econômico; "
}
LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE
@@ -870,23 +876,23 @@ STRINGTABLE DISCARDABLE
{
PD32_PRINT_TITLE "Imprimir"
PD32_VALUE_UREADABLE "Entrada Ilegível"
PD32_INVALID_PAGE_RANGE "Este valor não se encaixa na faixa de páginas\n\
PD32_VALUE_UREADABLE "Entrada Ilegível"
PD32_INVALID_PAGE_RANGE "Este valor não se encaixa na faixa de páginas\n\
Por favor indique um valor entre %d e %d."
PD32_FROM_NOT_ABOVE_TO "A entrada DE não pode exceder ATÉ"
PD32_MARGINS_OVERLAP "As margens estão fora das medidas \
PD32_FROM_NOT_ABOVE_TO "A entrada DE não pode exceder ATÉ"
PD32_MARGINS_OVERLAP "As margens estão fora das medidas \
do papel.\nPor favor indique as margens."
PD32_NR_OF_COPIES_EMPTY "O número de cópias não pode ter valor vazio."
PD32_TOO_LARGE_COPIES "Esta grande quantidade de cópias não é suportada \
PD32_NR_OF_COPIES_EMPTY "O número de cópias não pode ter valor vazio."
PD32_TOO_LARGE_COPIES "Esta grande quantidade de cópias não é suportada \
pela sua impressora.\nPor favor indique um valor entre 1 e %d."
PD32_PRINT_ERROR "Ocorreu um erro de impressão."
PD32_NO_DEFAULT_PRINTER "Não existe uma impressora predefinida."
PD32_CANT_FIND_PRINTER "Não é possível encontrar uma impressora."
PD32_OUT_OF_MEMORY "Memória insuficiente."
PD32_PRINT_ERROR "Ocorreu um erro de impressão."
PD32_NO_DEFAULT_PRINTER "Não existe uma impressora predefinida."
PD32_CANT_FIND_PRINTER "Não é possível encontrar uma impressora."
PD32_OUT_OF_MEMORY "Memória insuficiente."
PD32_GENERIC_ERROR "Ocorreu algum erro."
PD32_DRIVER_UNKNOWN "Controlador de impressora desconhecido."
PD32_NO_DEVICES "Antes de realizar tarefas relacionadas com a impressora \
tais como configuração de páginas ou imprimir um documento, precisa instalar uma impressora. \
tais como configuração de páginas ou imprimir um documento, precisa instalar uma impressora. \
Por favor instale uma e tente novamente."
PD32_DEFAULT_PRINTER "Impressora Predefinida; "
@@ -898,31 +904,40 @@ Por favor instale uma e tente novamente."
PD32_PRINTER_STATUS_READY "Pronto"
PD32_PRINTER_STATUS_PAUSED "Pausada; "
PD32_PRINTER_STATUS_ERROR "Erro; "
PD32_PRINTER_STATUS_PENDING_DELETION "Exclusão pendente; "
PD32_PRINTER_STATUS_PENDING_DELETION "Exclusão pendente; "
PD32_PRINTER_STATUS_PAPER_JAM "Papel atolado; "
PD32_PRINTER_STATUS_PAPER_OUT "Sem papel; "
PD32_PRINTER_STATUS_MANUAL_FEED "Alimentação manual; "
PD32_PRINTER_STATUS_MANUAL_FEED "Alimentação manual; "
PD32_PRINTER_STATUS_PAPER_PROBLEM "Problemas com o papel; "
PD32_PRINTER_STATUS_OFFLINE "Impressora desligada; "
PD32_PRINTER_STATUS_IO_ACTIVE "E/S Activa; "
PD32_PRINTER_STATUS_BUSY "Ocupada; "
PD32_PRINTER_STATUS_PRINTING "A imprimir; "
PD32_PRINTER_STATUS_OUTPUT_BIN_FULL "A bandeja de saida encontra-se cheia; "
PD32_PRINTER_STATUS_NOT_AVAILABLE "Não disponível; "
PD32_PRINTER_STATUS_NOT_AVAILABLE "Não disponível; "
PD32_PRINTER_STATUS_WAITING "A esperar; "
PD32_PRINTER_STATUS_PROCESSING "A processar; "
PD32_PRINTER_STATUS_INITIALIZING "A inicializar; "
PD32_PRINTER_STATUS_WARMING_UP "A aquecer; "
PD32_PRINTER_STATUS_TONER_LOW "Pouco toner; "
PD32_PRINTER_STATUS_NO_TONER "Sem toner; "
PD32_PRINTER_STATUS_PAGE_PUNT "Lançar página; "
PD32_PRINTER_STATUS_USER_INTERVENTION "Intervenção do utilizador; "
PD32_PRINTER_STATUS_OUT_OF_MEMORY "Memória insuficiente; "
PD32_PRINTER_STATUS_DOOR_OPEN "A impressora está aberta; "
PD32_PRINTER_STATUS_SERVER_UNKNOWN "Servidor de impressão desconhecido; "
PD32_PRINTER_STATUS_POWER_SAVE "Modo económico; "
PD32_PRINTER_STATUS_PAGE_PUNT "Lançar página; "
PD32_PRINTER_STATUS_USER_INTERVENTION "Intervenção do utilizador; "
PD32_PRINTER_STATUS_OUT_OF_MEMORY "Memória insuficiente; "
PD32_PRINTER_STATUS_DOOR_OPEN "A impressora está aberta; "
PD32_PRINTER_STATUS_SERVER_UNKNOWN "Servidor de impressão desconhecido; "
PD32_PRINTER_STATUS_POWER_SAVE "Modo económico; "
}
LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE
STRINGTABLE DISCARDABLE /* Estilos de tipos de letra */
{
IDS_FONT_REGULAR "Normal"
IDS_FONT_BOLD "Negrito"
IDS_FONT_ITALIC "Itálico"
IDS_FONT_BOLD_ITALIC "Negrito Itálico"
}
LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
@@ -934,14 +949,14 @@ STRINGTABLE DISCARDABLE /* Nomes de cores */
IDS_COLOR_OLIVE "Verde-oliva"
IDS_COLOR_NAVY "Azul-marinho"
IDS_COLOR_PURPLE "Roxo"
IDS_COLOR_TEAL "Azul-petróleo"
IDS_COLOR_TEAL "Azul-petróleo"
IDS_COLOR_GRAY "Cinza"
IDS_COLOR_SILVER "Prateado"
IDS_COLOR_RED "Vermelho"
IDS_COLOR_LIME "Verde-limão"
IDS_COLOR_LIME "Verde-limão"
IDS_COLOR_YELLOW "Amarelo"
IDS_COLOR_BLUE "Azul"
IDS_COLOR_FUCHSIA "Fúcsia"
IDS_COLOR_FUCHSIA "Fúcsia"
IDS_COLOR_AQUA "Azul-piscina"
IDS_COLOR_WHITE "Branco"
}
@@ -956,7 +971,7 @@ STRINGTABLE DISCARDABLE /* Nomes de cores */
IDS_COLOR_OLIVE "Verde-oliveira"
IDS_COLOR_NAVY "Azul-marinho"
IDS_COLOR_PURPLE "Roxo"
IDS_COLOR_TEAL "Azul-petróleo"
IDS_COLOR_TEAL "Azul-petróleo"
IDS_COLOR_GRAY "Cinza"
IDS_COLOR_SILVER "Prateado"
IDS_COLOR_RED "Vermelho"
+3 -2
View File
@@ -17,6 +17,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "cdlg.h"
#include "filedlgbrowser.h"
/*
* WARNING: DO NOT CHANGE THE SIZE OF THE STANDARD DIALOG TEMPLATES.
*/
@@ -476,5 +479,3 @@ STRINGTABLE DISCARDABLE
IDS_SAVE_AS "Salvează ca"
IDS_OPEN_FILE "Deschide fișier"
}
#pragma code_page(default)
+264 -258
View File
@@ -16,100 +16,106 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "cdlg.h"
#include "filedlgbrowser.h"
/*
* WARNING: DO NOT CHANGE THE SIZE OF THE STANDARD DIALOG TEMPLATES.
*/
/* UTF-8 */
#pragma code_page(65001)
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Îòêðûòü"
CAPTION "Открыть"
FONT 8, "MS Shell Dlg"
{
LTEXT "&Èìÿ ôàéëà:", 1090, 6, 6, 76, 9
LTEXT "&Имя файла:", 1090, 6, 6, 76, 9
EDITTEXT 1152, 6, 16, 90, 12, ES_AUTOHSCROLL | ES_OEMCONVERT | WS_BORDER | WS_TABSTOP
LISTBOX 1120, 6, 32, 90, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
LTEXT "&Êàòàëîãè:", -1, 110, 6, 92, 9
LTEXT "&Каталоги:", -1, 110, 6, 92, 9
LTEXT "", 1088, 110, 18, 92, 9, SS_NOPREFIX | WS_GROUP
LISTBOX 1121, 110, 32, 92, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
LTEXT "Ïîêàçûâàòü ôàéëû &òèïà:", 1089, 6, 104, 90, 9
LTEXT "Показывать файлы &типа:", 1089, 6, 104, 90, 9
COMBOBOX 1136, 6, 114, 90, 36, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP
LTEXT "&Äèñêè:", 1091, 110, 104, 92, 9
LTEXT "&Диски:", 1091, 110, 104, 92, 9
COMBOBOX 1137, 110, 114, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
DEFPUSHBUTTON "Îòêðûòü", IDOK, 208, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Îòìåíà", IDCANCEL, 208, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Ñïðàâêà", 1038, 208, 46, 56, 14, WS_GROUP | WS_TABSTOP
CHECKBOX "Ò&îëüêî äëÿ ÷òåíèÿ", 1040, 208, 68, 54, 24, BS_AUTOCHECKBOX | BS_MULTILINE | WS_GROUP | WS_TABSTOP
DEFPUSHBUTTON "Открыть", IDOK, 208, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Отмена", IDCANCEL, 208, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Справка", 1038, 208, 46, 56, 14, WS_GROUP | WS_TABSTOP
CHECKBOX "Т&олько для чтения", 1040, 208, 68, 54, 24, BS_AUTOCHECKBOX | BS_MULTILINE | WS_GROUP | WS_TABSTOP
}
SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Ñîõðàíèòü êàê..."
CAPTION "Сохранить как..."
FONT 8, "MS Shell Dlg"
{
LTEXT "&Èìÿ ôàéëà:", 1090, 6, 6, 76, 9
LTEXT "&Имя файла:", 1090, 6, 6, 76, 9
EDITTEXT 1152, 6, 16, 90, 12, ES_AUTOHSCROLL | ES_OEMCONVERT | WS_BORDER | WS_TABSTOP
LISTBOX 1120, 6, 32, 90, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
LTEXT "&Êàòàëîãè:", -1, 110, 6, 92, 9
LTEXT "&Каталоги:", -1, 110, 6, 92, 9
LTEXT "", 1088, 110, 18, 92, 9, SS_NOPREFIX | WS_GROUP
LISTBOX 1121, 110, 32, 92, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
LTEXT "Ïîêàçûâàòü ôàéëû &òèïà:", 1089, 6, 104, 90, 9
LTEXT "Показывать файлы &типа:", 1089, 6, 104, 90, 9
COMBOBOX 1136, 6, 114, 90, 36, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP
LTEXT "&Äèñêè:", 1091, 110, 104, 92, 9
LTEXT "&Диски:", 1091, 110, 104, 92, 9
COMBOBOX 1137, 110, 114, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
DEFPUSHBUTTON "Ñîõðàíèòü êàê", IDOK, 208, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Îòìåíà", IDCANCEL, 208, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Ñïðàâêà", 1038, 208, 46, 56, 14, WS_GROUP | WS_TABSTOP
CHECKBOX "&Òîëüêî äëÿ ÷òåíèÿ", 1040, 208, 68, 54, 24, BS_AUTOCHECKBOX | BS_MULTILINE | WS_GROUP | WS_TABSTOP
DEFPUSHBUTTON "Сохранить как", IDOK, 208, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Отмена", IDCANCEL, 208, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Справка", 1038, 208, 46, 56, 14, WS_GROUP | WS_TABSTOP
CHECKBOX "&Только для чтения", 1040, 208, 68, 54, 24, BS_AUTOCHECKBOX | BS_MULTILINE | WS_GROUP | WS_TABSTOP
}
PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Ïå÷àòü"
CAPTION "Печать"
FONT 8, "MS Shell Dlg"
{
LTEXT "Ïðèíòåð:", 1088, 6, 6, 40, 9
LTEXT "Принтер:", 1088, 6, 6, 40, 9
LTEXT "", 1089, 60, 6, 150, 9
GROUPBOX "Ïå÷àòàòü", 1072, 6, 30, 160, 65, BS_GROUPBOX
RADIOBUTTON "&Âñå", 1056, 16, 45, 60, 12
RADIOBUTTON "Â&ûäåëåííûé ôðàãìåíò", 1057, 16, 60, 60, 12
RADIOBUTTON "&Ñòðàíèöû", 1058, 16, 75, 60, 12
DEFPUSHBUTTON "Ïå÷àòü", IDOK, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Îòìåíà", IDCANCEL, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Ñâî&éñòâà", 1024, 206, 46, 56, 14, WS_GROUP | WS_TABSTOP
LTEXT "&ñ:", 1090, 60, 80, 30, 9
LTEXT "&ïî:", 1091, 120, 80, 30, 9
LTEXT "&Êà÷åñòâî ïå÷àòè:", 1092, 6, 100, 76, 9
GROUPBOX "Печатать", 1072, 6, 30, 160, 65, BS_GROUPBOX
RADIOBUTTON "&Все", 1056, 16, 45, 60, 12
RADIOBUTTON "В&ыделенный фрагмент", 1057, 16, 60, 60, 12
RADIOBUTTON "&Страницы", 1058, 16, 75, 60, 12
DEFPUSHBUTTON "Печать", IDOK, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Отмена", IDCANCEL, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Сво&йства", 1024, 206, 46, 56, 14, WS_GROUP | WS_TABSTOP
LTEXT "&с:", 1090, 60, 80, 30, 9
LTEXT "&по:", 1091, 120, 80, 30, 9
LTEXT "&Качество печати:", 1092, 6, 100, 76, 9
COMBOBOX 1136, 80, 100, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
CHECKBOX "Ï&å÷àòü â ôàéë", 1040, 20, 100, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "Ñæàòî", 1041, 160, 100, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "П&ечать в файл", 1040, 20, 100, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "Сжато", 1041, 160, 100, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
}
PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Íàñòðîéêà ïðèíòåðà"
CAPTION "Настройка принтера"
FONT 8, "MS Shell Dlg"
{
GROUPBOX "Ïðèíòåð", 1072, 6, 10, 180, 65, BS_GROUPBOX
RADIOBUTTON "Ïðèíòåð ïî &óìîë÷àíèþ", 1056, 16, 20, 80, 12
LTEXT "[íåò]", 1088, 35, 35, 120, 9
RADIOBUTTON "&Äðóãîé ïðèíòåð", 1057, 16, 50, 80, 12
GROUPBOX "Принтер", 1072, 6, 10, 180, 65, BS_GROUPBOX
RADIOBUTTON "Принтер по &умолчанию", 1056, 16, 20, 80, 12
LTEXT "[нет]", 1088, 35, 35, 120, 9
RADIOBUTTON "&Другой принтер", 1057, 16, 50, 80, 12
COMBOBOX 1136, 35, 65, 149, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
DEFPUSHBUTTON "OK", IDOK, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Îòìåíà", IDCANCEL, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Íàñòðîéêà", 1024, 206, 46, 56, 14, WS_GROUP | WS_TABSTOP
GROUPBOX "Îðèåíòàöèÿ", 1073, 6, 85, 100, 50, BS_GROUPBOX
RADIOBUTTON "&Êíèæíàÿ", 1058, 50, 100, 40, 12
RADIOBUTTON "&Àëüáîìíàÿ", 1059, 50, 115, 40, 12
PUSHBUTTON "Отмена", IDCANCEL, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Настройка", 1024, 206, 46, 56, 14, WS_GROUP | WS_TABSTOP
GROUPBOX "Ориентация", 1073, 6, 85, 100, 50, BS_GROUPBOX
RADIOBUTTON "&Книжная", 1058, 50, 100, 40, 12
RADIOBUTTON "&Альбомная", 1059, 50, 115, 40, 12
ICON "LANDSCAP", 1097, 10, 95, 32, 32
ICON "PORTRAIT", 1098, 10, 95, 32, 32
GROUPBOX "Áóìàãà", 1074, 120, 85, 180, 50, BS_GROUPBOX
LTEXT "Ðà&çìåð", 1089, 130, 95, 30, 9
LTEXT "&Èñòî÷íèê", 1090, 130, 110, 30, 9
GROUPBOX "Бумага", 1074, 120, 85, 180, 50, BS_GROUPBOX
LTEXT "Ра&змер", 1089, 130, 95, 30, 9
LTEXT "&Источник", 1090, 130, 110, 30, 9
COMBOBOX 1137, 155, 95, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
COMBOBOX 1138, 155, 110, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
}
@@ -117,31 +123,31 @@ FONT 8, "MS Shell Dlg"
CHOOSE_FONT DIALOG DISCARDABLE 13, 54, 264, 147
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Øðèôò"
CAPTION "Шрифт"
FONT 8, "MS Shell Dlg"
{
LTEXT "&Øðèôò:",1088 ,6,3,40,9
LTEXT "&Шрифт:",1088 ,6,3,40,9
COMBOBOX 1136 ,6,13,94,54, CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_DISABLENOSCROLL |
CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP | CBS_SIMPLE
LTEXT "&Íà÷åðòàíèå:",1089 ,108,3,44,9
LTEXT "&Начертание:",1089 ,108,3,44,9
COMBOBOX 1137,108,13,64,54, CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_DISABLENOSCROLL |
WS_VSCROLL | WS_TABSTOP | CBS_SIMPLE
LTEXT "&Ðàçìåð:",1090,179,3,30,9
LTEXT "&Размер:",1090,179,3,30,9
COMBOBOX 1138,179,13,32,54, CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_DISABLENOSCROLL |
WS_VSCROLL | WS_TABSTOP | CBS_SIMPLE | CBS_SORT
DEFPUSHBUTTON "OK",IDOK,218,6,40,14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON
PUSHBUTTON "Îòìåíà",IDCANCEL,218,23,40,14,WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Ïðèìåíèòü", 1026,218,40,40,14,WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Ñïðàâêà" , 1038,218,57,40,14,WS_GROUP | WS_TABSTOP
GROUPBOX "Àòðèáóòû",1072,6,72,84,34,WS_GROUP
CHECKBOX "&Çà÷åðêíóòûé", 1040, 10,82,75,10, BS_AUTOCHECKBOX | WS_TABSTOP
CHECKBOX "Ïîä&÷åðêíóòûé", 1041, 10,94,75,10, BS_AUTOCHECKBOX
LTEXT "Ö&âåò:", 1091 ,6,110,30,9
PUSHBUTTON "Отмена",IDCANCEL,218,23,40,14,WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Применить", 1026,218,40,40,14,WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Справка" , 1038,218,57,40,14,WS_GROUP | WS_TABSTOP
GROUPBOX "Атрибуты",1072,6,72,84,34,WS_GROUP
CHECKBOX "&Зачеркнутый", 1040, 10,82,75,10, BS_AUTOCHECKBOX | WS_TABSTOP
CHECKBOX "Под&черкнутый", 1041, 10,94,75,10, BS_AUTOCHECKBOX
LTEXT "Ц&вет:", 1091 ,6,110,30,9
COMBOBOX 1139,6,120,84,100,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS |
CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP
GROUPBOX "Îáðàçåö",grp2,98,72,120,36,WS_GROUP
CTEXT "ÀàÁáAaBb",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE
LTEXT "Íà&áîð ñèìâîëîâ:",stc7 ,98,114,80,9
GROUPBOX "Образец",grp2,98,72,120,36,WS_GROUP
CTEXT "АаБбAaBb",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE
LTEXT "На&бор символов:",stc7 ,98,114,80,9
COMBOBOX cmb5,98,124,120,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS |
CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
}
@@ -149,23 +155,23 @@ FONT 8, "MS Shell Dlg"
CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 310, 185
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Èçìåíåíèå ïàëèòðû"
CAPTION "Изменение палитры"
FONT 8, "MS Shell Dlg"
{
LTEXT "&Áàçîâàÿ ïàëèòðà:", 1088, 4, 4, 140, 10
LTEXT "Äî&ïîëíèòåëüíûå öâåòà:", 1089, 4, 106, 140, 10
LTEXT "Öâåò|Çà&ëèâêà", 1090, 150, 151, 48, 10
LTEXT "Êðàñ&íûé:", 726 /*1094*/,254,126,32,10
LTEXT "&Базовая палитра:", 1088, 4, 4, 140, 10
LTEXT "До&полнительные цвета:", 1089, 4, 106, 140, 10
LTEXT "Цвет|За&ливка", 1090, 150, 151, 48, 10
LTEXT "Крас&ный:", 726 /*1094*/,254,126,32,10
EDITTEXT 706, 288,124,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP
LTEXT "&Çåë¸íûé:",727/*1095*/,254,140,32,10
LTEXT "&Зелёный:",727/*1095*/,254,140,32,10
EDITTEXT 707, 288,138,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP
LTEXT "Ñ&èíèé:",728 /*1096*/,264,154,24,10
LTEXT "С&иний:",728 /*1096*/,264,154,24,10
EDITTEXT 708, 288,152,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP
LTEXT "Î&òòåíîê:" ,723 /*1091*/,202,126,30,10
LTEXT "О&ттенок:" ,723 /*1091*/,202,126,30,10
EDITTEXT 703, 234,124,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP
LTEXT "&Êîíòðàñò:" ,724 /*1092*/,199,140,34,10
LTEXT "&Контраст:" ,724 /*1092*/,199,140,34,10
EDITTEXT 704, 234,138,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP
LTEXT "&ßðêîñòü:" ,725 /*1093*/,202,154,30,10
LTEXT "&Яркость:" ,725 /*1093*/,202,154,30,10
EDITTEXT 705, 234,152,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP
CONTROL "" ,720,"STATIC",SS_SIMPLE|WS_TABSTOP|WS_GROUP,4,14,140,86
CONTROL "" ,721,"STATIC",SS_SIMPLE|WS_TABSTOP|WS_GROUP,4,116,140,28
@@ -173,309 +179,309 @@ FONT 8, "MS Shell Dlg"
CONTROL "" ,702,"STATIC",SS_SIMPLE|WS_TABSTOP|WS_GROUP, 278,4,8,116
CONTROL "" ,709,"STATIC",SS_SIMPLE|WS_TABSTOP|WS_GROUP, 152,124,40,26
DEFPUSHBUTTON "OK", IDOK, 4, 166, 44, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Îòìåíà", IDCANCEL, 52, 166, 44, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cïðàâêà", 1038,100,166, 44, 14
PUSHBUTTON "&Äîáàâèòü â íàáîð", 712/*1024*/, 152, 166, 142, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Îïðåäåëèòü öâåò >>", 719/*1025*/, 4, 150, 142, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Отмена", IDCANCEL, 52, 166, 44, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Cправка", 1038,100,166, 44, 14
PUSHBUTTON "&Добавить в набор", 712/*1024*/, 152, 166, 142, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Определить цвет >>", 719/*1025*/, 4, 150, 142, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&i",713,300,200,4,14 /* just a dummy: 'i' is like &i in "sol&id" */
}
FINDDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 245, 62
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Ïîèñê"
CAPTION "Поиск"
FONT 8, "MS Shell Dlg"
{
LTEXT "&Îáðàçåö:", -1, 4, 8, 42, 8
LTEXT "&Образец:", -1, 4, 8, 42, 8
EDITTEXT 1152, 47, 7, 138, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
CHECKBOX "&Òîëüêî ñëîâî öåëèêîì", 1040, 4, 26, 100, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "C &ó÷åòîì ðåãèñòðà", 1041, 4, 42, 100, 12, BS_AUTOCHECKBOX | WS_TABSTOP
GROUPBOX "Íàïðàâëåíèå", 1072, 107, 26, 78, 28
CONTROL "&Ââåðõ", 1056, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 111, 38, 40, 12
CONTROL "Â&íèç", 1057, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 152, 38, 30, 12
CHECKBOX "&Только слово целиком", 1040, 4, 26, 100, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "C &учетом регистра", 1041, 4, 42, 100, 12, BS_AUTOCHECKBOX | WS_TABSTOP
GROUPBOX "Направление", 1072, 107, 26, 78, 28
CONTROL "&Вверх", 1056, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 111, 38, 40, 12
CONTROL "В&низ", 1057, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 152, 38, 30, 12
DEFPUSHBUTTON "&Íàéòè äàëåå", IDOK, 190, 5, 50, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON
PUSHBUTTON "Îòìåíà", IDCANCEL , 190, 23, 50, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Ñïðàâêà", pshHelp , 190, 45, 50, 14, WS_GROUP | WS_TABSTOP
DEFPUSHBUTTON "&Найти далее", IDOK, 190, 5, 50, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON
PUSHBUTTON "Отмена", IDCANCEL , 190, 23, 50, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Справка", pshHelp , 190, 45, 50, 14, WS_GROUP | WS_TABSTOP
}
REPLACEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 230, 94
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Çàìåíà"
CAPTION "Замена"
FONT 8, "MS Shell Dlg"
{
LTEXT "&Îáðàçåö:", -1, 4, 9, 48, 8
LTEXT "&Образец:", -1, 4, 9, 48, 8
EDITTEXT 1152, 54, 7, 114, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
LTEXT "Ç&àìåíèòü íà:", -1, 4, 26, 48, 8
LTEXT "З&аменить на:", -1, 4, 26, 48, 8
EDITTEXT 1153, 54, 24, 114, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
CHECKBOX "&Òîëüêî ñëîâî öåëèêîì", 1040, 5, 46, 104, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "Ñ &ó÷¸òîì ðåãèñòðà", 1041, 5, 62, 104, 12, BS_AUTOCHECKBOX | WS_TABSTOP
CHECKBOX "&Только слово целиком", 1040, 5, 46, 104, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
CHECKBOX "С &учётом регистра", 1041, 5, 62, 104, 12, BS_AUTOCHECKBOX | WS_TABSTOP
DEFPUSHBUTTON "&Íàéòè äàëåå", IDOK, 174, 4, 50, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON
PUSHBUTTON "&Çàìåíèòü", psh1 , 174, 21, 50, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Çàìåíèòü &âñå", psh2 , 174, 38, 50, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Îòìåíà", IDCANCEL , 174, 55, 50, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Ñïðàâêà", pshHelp , 174, 75, 50, 14, WS_GROUP | WS_TABSTOP
DEFPUSHBUTTON "&Найти далее", IDOK, 174, 4, 50, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON
PUSHBUTTON "&Заменить", psh1 , 174, 21, 50, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Заменить &все", psh2 , 174, 38, 50, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "Отмена", IDCANCEL , 174, 55, 50, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Справка", pshHelp , 174, 75, 50, 14, WS_GROUP | WS_TABSTOP
}
PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 186
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU |
DS_CONTEXTHELP | DS_3DLOOK
CAPTION "Ïå÷àòü"
CAPTION "Печать"
FONT 8, "MS Shell Dlg"
{
DEFPUSHBUTTON "OK", IDOK, 180,164, 48,14, WS_GROUP | BS_DEFPUSHBUTTON
PUSHBUTTON "Îòìåíà", IDCANCEL, 232,164, 48,14, WS_GROUP
PUSHBUTTON "&Ñïðàâêà", pshHelp, 50, 161, 48,14, WS_GROUP
PUSHBUTTON "Отмена", IDCANCEL, 232,164, 48,14, WS_GROUP
PUSHBUTTON "&Справка", pshHelp, 50, 161, 48,14, WS_GROUP
GROUPBOX "Ïðèíòåð", grp4, 8, 4, 272,84, WS_GROUP
CONTROL "Ïå÷àòü â ôàé&ë", chx1, "Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,212,70,64,12
PUSHBUTTON "&Ñâîéñòâà", psh2, 212, 17, 60,14, WS_GROUP
LTEXT "&Èìÿ:", stc6, 16, 20, 46,8
GROUPBOX "Принтер", grp4, 8, 4, 272,84, WS_GROUP
CONTROL "Печать в фай&л", chx1, "Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,212,70,64,12
PUSHBUTTON "&Свойства", psh2, 212, 17, 60,14, WS_GROUP
LTEXT "&Имя:", stc6, 16, 20, 46,8
COMBOBOX cmb4, 64, 18, 140,152,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP
LTEXT "Ñòàòóñ:", stc8, 16, 36, 46,10, SS_NOPREFIX
LTEXT "Ýìóëèðîâàí", stc12, 64, 36, 100,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Òèï:", stc7, 16, 48, 46,10, SS_NOPREFIX
LTEXT "Ýìóëèðîâàí", stc11, 64, 48, 100,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Ìåñòî:", stc10, 16, 60, 46,10, SS_NOPREFIX
LTEXT "Ýìóëèðîâàíî", stc14, 64, 60, 100,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Ïðèìå÷àíèå:", stc9, 16, 72, 46,10, SS_NOPREFIX
LTEXT "Ýìóëèðîâàíî", stc13, 64, 72, 100,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Статус:", stc8, 16, 36, 46,10, SS_NOPREFIX
LTEXT "Эмулирован", stc12, 64, 36, 100,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Тип:", stc7, 16, 48, 46,10, SS_NOPREFIX
LTEXT "Эмулирован", stc11, 64, 48, 100,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Место:", stc10, 16, 60, 46,10, SS_NOPREFIX
LTEXT "Эмулировано", stc14, 64, 60, 100,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Примечание:", stc9, 16, 72, 46,10, SS_NOPREFIX
LTEXT "Эмулировано", stc13, 64, 72, 100,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
GROUPBOX "Êîïèè", grp2, 160, 92, 120,64, WS_GROUP
LTEXT "×èñëî &êîïèé:",stc5,168,108,68,8
GROUPBOX "Копии", grp2, 160, 92, 120,64, WS_GROUP
LTEXT "Число &копий:",stc5,168,108,68,8
ICON "", ico3, 162,124, 60,24, WS_GROUP | SS_CENTERIMAGE
CONTROL "&Ðàçáèòü", chx2,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,230,130,42,12
CONTROL "&Разбить", chx2,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,230,130,42,12
EDITTEXT edt3, 230,106, 42,12, WS_GROUP | ES_NUMBER
GROUPBOX "Ïå÷àòàòü", grp1, 8,92, 144,64, WS_GROUP
CONTROL "&Âñå", rad1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,16,106,64,12
CONTROL "&Ñòðàíèöû", rad3,"Button",BS_AUTORADIOBUTTON,16,122,50,12
CONTROL "&Âûäåëåíèå", rad2,"Button",BS_AUTORADIOBUTTON,16,138,64,12
GROUPBOX "Печатать", grp1, 8,92, 144,64, WS_GROUP
CONTROL "&Все", rad1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,16,106,64,12
CONTROL "&Страницы", rad3,"Button",BS_AUTORADIOBUTTON,16,122,50,12
CONTROL "&Выделение", rad2,"Button",BS_AUTORADIOBUTTON,16,138,64,12
EDITTEXT edt1, 85,122, 20,12, WS_GROUP | ES_NUMBER
EDITTEXT edt2, 120,122, 20,12, WS_GROUP | ES_NUMBER
RTEXT "&îò:", stc2, 70,124, 10,8
RTEXT "&äî:", stc3, 106,124, 10,8
RTEXT "&от:", stc2, 72,124, 12,8
RTEXT "&до:", stc3, 108,124, 12,8
}
PRINT32_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 178
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU |
DS_CONTEXTHELP | DS_3DLOOK
CAPTION "Óñòàíîâêè ïðèíòåðà"
CAPTION "Установки принтера"
FONT 8, "MS Shell Dlg"
BEGIN
DEFPUSHBUTTON "OK",IDOK,180,156,48,14,WS_GROUP
PUSHBUTTON "Îòìåíà",IDCANCEL,232,156,48,14
/* PUSHBUTTON "Ñåòü...", psh5, 284,156,48,14 */
PUSHBUTTON "Отмена",IDCANCEL,232,156,48,14
/* PUSHBUTTON "Сеть...", psh5, 284,156,48,14 */
GROUPBOX "Ïðèíòåð", grp4, 8, 4, 272,84, WS_GROUP
PUSHBUTTON "&Ñâîéñòâà", psh2, 212, 17, 60,14, WS_GROUP
LTEXT "&Èìÿ:", stc6, 16, 20, 36,8
GROUPBOX "Принтер", grp4, 8, 4, 272,84, WS_GROUP
PUSHBUTTON "&Свойства", psh2, 212, 17, 60,14, WS_GROUP
LTEXT "&Имя:", stc6, 16, 20, 36,8
COMBOBOX cmb1, 52, 18, 152,152,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP
LTEXT "Ñòàòóñ:", stc8, 16, 36, 36,10, SS_NOPREFIX
LTEXT "Ýìóëèðîâàí", stc12, 52, 36, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Òèï:", stc7, 16, 48, 36,10, SS_NOPREFIX
LTEXT "Ýìóëèðîâàí", stc11, 52, 48, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Ìåñòî:", stc10, 16, 60, 36,10, SS_NOPREFIX
LTEXT "Ýìóëèðîâàíî", stc14, 52, 60, 36,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Çàìåòêè:", stc9, 16, 72, 36,10, SS_NOPREFIX
LTEXT "Ýìóëèðîâàíû", stc13, 52, 72, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Статус:", stc8, 16, 36, 36,10, SS_NOPREFIX
LTEXT "Эмулирован", stc12, 52, 36, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Тип:", stc7, 16, 48, 36,10, SS_NOPREFIX
LTEXT "Эмулирован", stc11, 52, 48, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Место:", stc10, 16, 60, 36,10, SS_NOPREFIX
LTEXT "Эмулировано", stc14, 52, 60, 36,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
LTEXT "Заметки:", stc9, 16, 72, 36,10, SS_NOPREFIX
LTEXT "Эмулированы", stc13, 52, 72, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
GROUPBOX "Áóìàãà", grp2, 8, 92, 164,56, WS_GROUP
LTEXT "Ðàç&ìåð:", stc2, 16,108, 36, 8
GROUPBOX "Бумага", grp2, 8, 92, 164,56, WS_GROUP
LTEXT "Раз&мер:", stc2, 16,108, 36, 8
COMBOBOX cmb2, 52,106, 112,112,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP
LTEXT "&Èñòî÷íèê:", stc3, 16,128, 36, 8
LTEXT "&Источник:", stc3, 16,128, 36, 8
COMBOBOX cmb3, 52,126, 112,112,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP
GROUPBOX "Îðèåíòàöèÿ", grp1, 180, 92, 100,56, WS_GROUP
GROUPBOX "Ориентация", grp1, 180, 92, 100,56, WS_GROUP
ICON "", ico1, 195,112, 18,20, WS_GROUP
CONTROL "&Ïîðòðåò", rad1,"Button",BS_AUTORADIOBUTTON | WS_GROUP |WS_TABSTOP,224,106,52,12
CONTROL "Ë&àíäøàôò", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12
CONTROL "&Портрет", rad1,"Button",BS_AUTORADIOBUTTON | WS_GROUP |WS_TABSTOP,224,106,52,12
CONTROL "Л&андшафт", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12
END
PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 240, 240
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Ïàðàìåòðû ñòðàíèöû"
CAPTION "Параметры страницы"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "", rct1, "Static", SS_WHITERECT, 80, 8, 80, 80
CONTROL "", rct2, "Static", SS_GRAYRECT, 160, 12, 4, 80
CONTROL "", rct3, "Static", SS_GRAYRECT, 84, 88, 80, 4
GROUPBOX "Áóìàãà", grp2, 8, 96, 224, 56, BS_GROUPBOX
LTEXT "&Ðàçìåð:", stc2, 16, 112, 36, 8
GROUPBOX "Бумага", grp2, 8, 96, 224, 56, BS_GROUPBOX
LTEXT "&Размер:", stc2, 16, 112, 36, 8
COMBOBOX cmb2, 64, 110, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL
LTEXT "Ïîäà&÷à:", stc3, 16, 132, 36, 8
LTEXT "Пода&ча:", stc3, 16, 132, 36, 8
COMBOBOX cmb3, 64, 130, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL
GROUPBOX "Îðèåíòàöèÿ", grp1, 8, 156, 64, 56, BS_GROUPBOX
AUTORADIOBUTTON "Ê&íèæíàÿ", rad1, 16, 170, 52, 12, BS_AUTORADIOBUTTON
AUTORADIOBUTTON "Àëü&áîìíàÿ", rad2, 16, 190, 52, 12, BS_AUTORADIOBUTTON
GROUPBOX "Ïîëÿ", grp4, 80, 156, 152, 56, BS_GROUPBOX
LTEXT "&Ñëåâà:", stc15, 88, 172, 31, 8
GROUPBOX "Ориентация", grp1, 8, 156, 64, 56, BS_GROUPBOX
AUTORADIOBUTTON "К&нижная", rad1, 16, 170, 52, 12, BS_AUTORADIOBUTTON
AUTORADIOBUTTON "Аль&бомная", rad2, 16, 190, 52, 12, BS_AUTORADIOBUTTON
GROUPBOX "Поля", grp4, 80, 156, 152, 56, BS_GROUPBOX
LTEXT "&Слева:", stc15, 88, 172, 31, 8
EDITTEXT edt4, 121, 170, 29, 12, WS_TABSTOP|WS_GROUP|WS_BORDER
LTEXT "Ñ&âåðõó:", stc16, 159, 172, 27, 8
LTEXT "С&верху:", stc16, 159, 172, 27, 8
EDITTEXT edt6, 187, 170, 29, 12, WS_TABSTOP|WS_GROUP|WS_BORDER
LTEXT "Ñïð&àâà:", stc17, 88, 192, 31, 8
LTEXT "Спр&ава:", stc17, 88, 192, 31, 8
EDITTEXT edt5, 121, 190, 29, 12, WS_TABSTOP|WS_GROUP|WS_BORDER
LTEXT "Ñíè&çó:", stc18, 159, 192, 23, 8
LTEXT "Сни&зу:", stc18, 159, 192, 23, 8
EDITTEXT edt7, 187, 190, 29, 12, WS_TABSTOP|WS_GROUP|WS_BORDER
DEFPUSHBUTTON "ÎÊ", IDOK, 71, 220, 50, 14, BS_PUSHBUTTON
PUSHBUTTON "Îòìåíà", IDCANCEL, 126, 220, 50, 14
PUSHBUTTON "&Ïðèíòåð...", psh3, 184, 220, 48, 14
DEFPUSHBUTTON "ОК", IDOK, 71, 220, 50, 14, BS_PUSHBUTTON
PUSHBUTTON "Отмена", IDCANCEL, 126, 220, 50, 14
PUSHBUTTON "&Принтер...", psh3, 184, 220, 48, 14
END
NEWFILEOPENORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 280, 164
STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN
CAPTION "Îòêðûòü"
CAPTION "Открыть"
FONT 8, "MS Shell Dlg"
{
LTEXT "Èñêàòü &â",IDC_LOOKINSTATIC,4,6,43,8, SS_NOTIFY
LTEXT "Искать &в",IDC_LOOKINSTATIC,4,6,43,8, SS_NOTIFY
COMBOBOX IDC_LOOKIN,49,3,132,100,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
LTEXT "" , IDC_TOOLBARSTATIC, 181, 2, 102, 17, NOT WS_GROUP | NOT WS_VISIBLE
LISTBOX IDC_SHELLSTATIC,4,20,272,85, LBS_SORT | LBS_NOINTEGRALHEIGHT | LBS_MULTICOLUMN | WS_HSCROLL | NOT WS_VISIBLE
LTEXT "Èìÿ &ôàéëà:",IDC_FILENAMESTATIC,5,112,46,8, SS_NOTIFY
LTEXT "Имя &файла:",IDC_FILENAMESTATIC,5,112,46,8, SS_NOTIFY
EDITTEXT IDC_FILENAME,54,110,155,12,ES_AUTOHSCROLL
LTEXT "&Òèï ôàéëîâ:",IDC_FILETYPESTATIC,5,128,42,8, SS_NOTIFY
LTEXT "&Тип файлов:",IDC_FILETYPESTATIC,5,128,42,8, SS_NOTIFY
COMBOBOX IDC_FILETYPE,54,126,155,53,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
CONTROL "Òîëüêî äëÿ &÷òåíèÿ",IDC_OPENREADONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,54,145,100,10
CONTROL "Только для &чтения",IDC_OPENREADONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,54,145,100,10
DEFPUSHBUTTON "&Îòêðûòü", IDOK,222,110,50,14
PUSHBUTTON "Îòìåíà", IDCANCEL,222,128,50,14
PUSHBUTTON "&Ñïðàâêà", pshHelp,222,145,50,14
DEFPUSHBUTTON "&Открыть", IDOK,222,110,50,14
PUSHBUTTON "Отмена", IDCANCEL,222,128,50,14
PUSHBUTTON "&Справка", pshHelp,222,145,50,14
}
STRINGTABLE DISCARDABLE
{
IDS_ABOUTBOX "&Î òåñòå ÂûáîðÏàïêè"
IDS_DOCUMENTFOLDERS "Ïàïêè äîêóìåíòîâ"
IDS_PERSONAL "Ìîè äîêóìåíòû"
IDS_FAVORITES "Èçáðàííîå"
IDS_PATH "Ñèñòåìíûé ïóòü"
IDS_DESKTOP "Ðàáî÷èé ñòîë"
IDS_FONTS "Øðèôòû"
IDS_MYCOMPUTER "Ìîé êîìïüþòåð"
IDS_ABOUTBOX "&О тесте ВыборПапки"
IDS_DOCUMENTFOLDERS "Папки документов"
IDS_PERSONAL "Мои документы"
IDS_FAVORITES "Избранное"
IDS_PATH "Системный путь"
IDS_DESKTOP "Рабочий стол"
IDS_FONTS "Шрифты"
IDS_MYCOMPUTER "Мой компьютер"
}
STRINGTABLE DISCARDABLE
{
IDS_SYSTEMFOLDERS "Ñèñòåìíûå ïàïêè"
IDS_LOCALHARDRIVES "Ëîêàëüíûå æåñòêèå äèñêè"
IDS_FILENOTFOUND "Ôàéë íå íàéäåí"
IDS_VERIFYFILE "Ïðîâåðüòå, ïðàâèëüíî ëè óêàçàíî èìÿ ôàéëà"
IDS_CREATEFILE "Ôàéëà íå ñóùåñòâóåò\nÕîòèòå ëè Âû åãî ñîçäàòü?"
IDS_OVERWRITEFILE "Ôàéë óæå ñóùåñòâóåò.\nÇàìåíèòü åãî?"
IDS_INVALID_FILENAME_TITLE "Íåêîððåêòíûé ñèìâîë â çàïèñè ïóòè"
IDS_INVALID_FILENAME "Èìÿ ôàéëà íå ìîæåò ñîäåðæàòü ñëåäóþùèå ñèìâîëû:\n / : < > |"
IDS_PATHNOTEXISTING "Ïóòü íå ñóùåñòâóåò"
IDS_FILENOTEXISTING "Ôàéë íå ñóùåñòâóåò"
IDS_SYSTEMFOLDERS "Системные папки"
IDS_LOCALHARDRIVES "Локальные жесткие диски"
IDS_FILENOTFOUND "Файл не найден"
IDS_VERIFYFILE "Проверьте, правильно ли указано имя файла"
IDS_CREATEFILE "Файла не существует\nХотите ли Вы его создать?"
IDS_OVERWRITEFILE "Файл уже существует.\nЗаменить его?"
IDS_INVALID_FILENAME_TITLE "Некорректный символ в записи пути"
IDS_INVALID_FILENAME "Имя файла не может содержать следующие символы:\n / : < > |"
IDS_PATHNOTEXISTING "Путь не существует"
IDS_FILENOTEXISTING "Файл не существует"
}
STRINGTABLE DISCARDABLE
{
IDS_UPFOLDER "Ââåðõ íà îäèí óðîâåíü"
IDS_NEWFOLDER "Ñîçäàòü íîâóþ ïàïêó"
IDS_LISTVIEW "Ñïèñîê"
IDS_REPORTVIEW "Ïîäðîáíîñòè"
IDS_TODESKTOP "Ïåðåõîä íà ðàáî÷èé ñòîë"
IDS_UPFOLDER "Вверх на один уровень"
IDS_NEWFOLDER "Создать новую папку"
IDS_LISTVIEW "Список"
IDS_REPORTVIEW "Подробности"
IDS_TODESKTOP "Переход на рабочий стол"
}
STRINGTABLE DISCARDABLE
{
PD32_PRINT_TITLE "Ïå÷àòü"
PD32_PRINT_TITLE "Печать"
PD32_VALUE_UREADABLE "Íå÷èòàåìûé ýëåìåíò"
PD32_INVALID_PAGE_RANGE "Ýòî çíà÷åíèå íå ëåæèò âíóòðè äèàïàçîíà ñòðàíèö\n\
Ââåäèòå çíà÷åíèå ìåæäó %d è %d"
PD32_FROM_NOT_ABOVE_TO "Çíà÷åíèå ÎÒ íå äîëæíî ïðåâûøàòü ÄÎ:"
PD32_MARGINS_OVERLAP "Ãðàíèöû ïåðåêðûâàþò èëè ïðåâûøàþò \
ðàçìåðû áóìàãè.\nÂâåäèòå èõ çàíîâî"
PD32_NR_OF_COPIES_EMPTY "Çíà÷åíèå ×èñëà Êîïèé íå ìîæåò áûòü \
ïóñòûì"
PD32_TOO_LARGE_COPIES "Òàêîå áîëüøîå êîëè÷åñòâî êîïèé íå \
ìîæåò áûòü íàïå÷àòàíî Âàøèì ïðèíòåðîì.\nÂâåäèòå çíà÷åíèå ìåæäó 1 è %d"
PD32_PRINT_ERROR "Ïðîèçîøëà îøèáêà ïðèíòåðà"
PD32_NO_DEFAULT_PRINTER "Íåò ïðèíòåðà, óñòàíîâëåííîãî ïî óìîë÷àíèþ"
PD32_CANT_FIND_PRINTER "Íå óäàëîñü íàéòè ïðèíòåð"
PD32_OUT_OF_MEMORY "Ìàëî ïàìÿòè"
PD32_GENERIC_ERROR "Ïðîèçîøëà(è) îøèáêà(è)"
PD32_DRIVER_UNKNOWN "Íåèçâåñòíûé äðàéâåð ïðèíòåðà"
PD32_NO_DEVICES "Îòñóòñòâóþò ïðèíòåðû â ñèñòåìå. \
Ïðîâåðüòå, ÷òî õîòÿ áû îäèí ïðèíòåð óñòàíîâëåí è ñèñòåìà ïå÷àòè çàïóùåíà. \
PD32_VALUE_UREADABLE "Нечитаемый элемент"
PD32_INVALID_PAGE_RANGE "Это значение не лежит внутри диапазона страниц\n\
Введите значение между %d и %d"
PD32_FROM_NOT_ABOVE_TO "Значение ОТ не должно превышать ДО:"
PD32_MARGINS_OVERLAP "Границы перекрывают или превышают \
размеры бумаги.\nВведите их заново"
PD32_NR_OF_COPIES_EMPTY "Значение Числа Копий не может быть \
пустым"
PD32_TOO_LARGE_COPIES "Такое большое количество копий не \
может быть напечатано Вашим принтером.\nВведите значение между 1 и %d"
PD32_PRINT_ERROR "Произошла ошибка принтера"
PD32_NO_DEFAULT_PRINTER "Нет принтера, установленного по умолчанию"
PD32_CANT_FIND_PRINTER "Не удалось найти принтер"
PD32_OUT_OF_MEMORY "Мало памяти"
PD32_GENERIC_ERROR "Произошла(и) ошибка(и)"
PD32_DRIVER_UNKNOWN "Неизвестный драйвер принтера"
PD32_NO_DEVICES "Отсутствуют принтеры в системе. \
Проверьте, что хотя бы один принтер установлен и система печати запущена. \
"
PD32_DEFAULT_PRINTER "Ïðèíòåð ïî óìîë÷àíèþ; "
PD32_NR_OF_DOCUMENTS_IN_QUEUE "%d äîêóìåíòîâ â î÷åðåäè"
PD32_MARGINS_IN_INCHES "Ãðàíèöû [äþéìû)"
PD32_MARGINS_IN_MILLIMETERS "Ãðàíèöû [ìì]"
PD32_MILLIMETERS "ìì"
PD32_DEFAULT_PRINTER "Принтер по умолчанию; "
PD32_NR_OF_DOCUMENTS_IN_QUEUE "%d документов в очереди"
PD32_MARGINS_IN_INCHES "Границы [дюймы)"
PD32_MARGINS_IN_MILLIMETERS "Границы [мм]"
PD32_MILLIMETERS "мм"
PD32_PRINTER_STATUS_READY "Ãîòîâî"
PD32_PRINTER_STATUS_PAUSED "Ïðèîñòàíîâëåíî; "
PD32_PRINTER_STATUS_ERROR "Îøèáêà; "
PD32_PRINTER_STATUS_PENDING_DELETION "Îæèäàíèå óäàëåíèÿ; "
PD32_PRINTER_STATUS_PAPER_JAM "Áóìàãà çàñòðÿëà; "
PD32_PRINTER_STATUS_PAPER_OUT "Íå õâàòàåò áóìàãè; "
PD32_PRINTER_STATUS_MANUAL_FEED "Âñòàâüòå áóìàãó âðó÷íóþ; "
PD32_PRINTER_STATUS_PAPER_PROBLEM "Ïðîáëåìà ñ áóìàãîé; "
PD32_PRINTER_STATUS_OFFLINE "Ïðèíòåð â ðåæèìå offline; "
PD32_PRINTER_STATUS_IO_ACTIVE "Ââîä/Âûâîä àêòèâåí; "
PD32_PRINTER_STATUS_BUSY "Çàíÿò; "
PD32_PRINTER_STATUS_PRINTING "Èäåò ïå÷àòü; "
PD32_PRINTER_STATUS_OUTPUT_BIN_FULL "Ëîòîê ïåðåïîëíåí áóìàãîé; "
PD32_PRINTER_STATUS_NOT_AVAILABLE "Íå äîñòóïåí; "
PD32_PRINTER_STATUS_WAITING "Îæèäàíèå; "
PD32_PRINTER_STATUS_PROCESSING "Îáðàáîòêà; "
PD32_PRINTER_STATUS_INITIALIZING "Ïîäãîòîâêà; "
PD32_PRINTER_STATUS_WARMING_UP "Ïðîãðåâ; "
PD32_PRINTER_STATUS_TONER_LOW "Òîíåð íà èñõîäå; "
PD32_PRINTER_STATUS_NO_TONER "Íåò òîíåðà; "
PD32_PRINTER_STATUS_READY "Готово"
PD32_PRINTER_STATUS_PAUSED "Приостановлено; "
PD32_PRINTER_STATUS_ERROR "Ошибка; "
PD32_PRINTER_STATUS_PENDING_DELETION "Ожидание удаления; "
PD32_PRINTER_STATUS_PAPER_JAM "Бумага застряла; "
PD32_PRINTER_STATUS_PAPER_OUT "Не хватает бумаги; "
PD32_PRINTER_STATUS_MANUAL_FEED "Вставьте бумагу вручную; "
PD32_PRINTER_STATUS_PAPER_PROBLEM "Проблема с бумагой; "
PD32_PRINTER_STATUS_OFFLINE "Принтер в режиме offline; "
PD32_PRINTER_STATUS_IO_ACTIVE "Ввод/Вывод активен; "
PD32_PRINTER_STATUS_BUSY "Занят; "
PD32_PRINTER_STATUS_PRINTING "Идет печать; "
PD32_PRINTER_STATUS_OUTPUT_BIN_FULL "Лоток переполнен бумагой; "
PD32_PRINTER_STATUS_NOT_AVAILABLE "Не доступен; "
PD32_PRINTER_STATUS_WAITING "Ожидание; "
PD32_PRINTER_STATUS_PROCESSING "Обработка; "
PD32_PRINTER_STATUS_INITIALIZING "Подготовка; "
PD32_PRINTER_STATUS_WARMING_UP "Прогрев; "
PD32_PRINTER_STATUS_TONER_LOW "Тонер на исходе; "
PD32_PRINTER_STATUS_NO_TONER "Нет тонера; "
PD32_PRINTER_STATUS_PAGE_PUNT "Page punt; "
PD32_PRINTER_STATUS_USER_INTERVENTION "Ïðåðâàíî ïîëüçîâàòåëåì; "
PD32_PRINTER_STATUS_OUT_OF_MEMORY "Ìàëî ïàìÿòè; "
PD32_PRINTER_STATUS_DOOR_OPEN "Êðûøêà ïðèíòåðà îòêðûòà; "
PD32_PRINTER_STATUS_SERVER_UNKNOWN "Íåèçâåñòíûé ñåðâåð ïðèíòåðà; "
PD32_PRINTER_STATUS_POWER_SAVE "Ïèòàíèå â áåçîïàñíîì ðåæèìå; "
PD32_PRINTER_STATUS_USER_INTERVENTION "Прервано пользователем; "
PD32_PRINTER_STATUS_OUT_OF_MEMORY "Мало памяти; "
PD32_PRINTER_STATUS_DOOR_OPEN "Крышка принтера открыта; "
PD32_PRINTER_STATUS_SERVER_UNKNOWN "Неизвестный сервер принтера; "
PD32_PRINTER_STATUS_POWER_SAVE "Питание в безопасном режиме; "
}
STRINGTABLE DISCARDABLE /* Font styles */
{
IDS_FONT_REGULAR "Íîðìàëüíûé"
IDS_FONT_BOLD "Æèðíûé"
IDS_FONT_ITALIC "Êóðñèâ"
IDS_FONT_BOLD_ITALIC "Æèðíûé êóðñèâ"
IDS_FONT_REGULAR "Нормальный"
IDS_FONT_BOLD "Жирный"
IDS_FONT_ITALIC "Курсив"
IDS_FONT_BOLD_ITALIC "Жирный курсив"
}
STRINGTABLE DISCARDABLE /* Color names */
{
IDS_COLOR_BLACK "׸ðíûé"
IDS_COLOR_MAROON "Ò¸ìíî-áîðäîâûé"
IDS_COLOR_GREEN "Çåë¸íûé"
IDS_COLOR_OLIVE "Îëèâêîâûé"
IDS_COLOR_NAVY "Ò¸ìíî-ñèíèé"
IDS_COLOR_PURPLE "Ïóðïóðíûé"
IDS_COLOR_TEAL "Ìîðñêîé âîëíû"
IDS_COLOR_GRAY "Ñåðûé"
IDS_COLOR_SILVER "Ñåðåáðÿíûé"
IDS_COLOR_RED "Êðàñíûé"
IDS_COLOR_LIME "Ëèìîííûé"
IDS_COLOR_YELLOW "Ƹëòûé"
IDS_COLOR_BLUE "Ñèíèé"
IDS_COLOR_FUCHSIA "ßðêî-ðîçîâûé"
IDS_COLOR_AQUA "Ãîëóáîé"
IDS_COLOR_WHITE "Áåëûé"
IDS_COLOR_BLACK "Чёрный"
IDS_COLOR_MAROON "Тёмно-бордовый"
IDS_COLOR_GREEN "Зелёный"
IDS_COLOR_OLIVE "Оливковый"
IDS_COLOR_NAVY "Тёмно-синий"
IDS_COLOR_PURPLE "Пурпурный"
IDS_COLOR_TEAL "Морской волны"
IDS_COLOR_GRAY "Серый"
IDS_COLOR_SILVER "Серебряный"
IDS_COLOR_RED "Красный"
IDS_COLOR_LIME "Лимонный"
IDS_COLOR_YELLOW "Жёлтый"
IDS_COLOR_BLUE "Синий"
IDS_COLOR_FUCHSIA "Ярко-розовый"
IDS_COLOR_AQUA "Голубой"
IDS_COLOR_WHITE "Белый"
}
STRINGTABLE DISCARDABLE
{
IDS_FONT_SIZE "Âûáåðèòå øðèôò ðàçìåðîì %d - %d ïóíêòîâ."
IDS_SAVE_BUTTON "&Ñîõðàíèòü"
IDS_SAVE_IN "Ñîõðàíèòü &â:"
IDS_SAVE "Ñîõðàíèòü"
IDS_SAVE_AS "Ñîõðàíèòü êàê"
IDS_OPEN_FILE "Îòêðûòü ôàéë"
IDS_FONT_SIZE "Выберите шрифт размером %d - %d пунктов."
IDS_SAVE_BUTTON "&Сохранить"
IDS_SAVE_IN "Сохранить &в:"
IDS_SAVE "Сохранить"
IDS_SAVE_AS "Сохранить как"
IDS_OPEN_FILE "Открыть файл"
}
+3 -2
View File
@@ -16,6 +16,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "cdlg.h"
#include "filedlgbrowser.h"
/*
* WARNING: DO NOT CHANGE THE SIZE OF THE STANDARD DIALOG TEMPLATES.
*/
@@ -481,5 +484,3 @@ STRINGTABLE DISCARDABLE
IDS_SAVE_AS "Shrani kot"
IDS_OPEN_FILE "Odpri datoteko"
}
#pragma code_page(default)
+3
View File
@@ -17,6 +17,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "cdlg.h"
#include "filedlgbrowser.h"
/*
* WARNING: DO NOT CHANGE THE SIZE OF THE STANDARD DIALOG TEMPLATES.
*/
+3
View File
@@ -17,6 +17,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "cdlg.h"
#include "filedlgbrowser.h"
/*
* WARNING: DO NOT CHANGE THE SIZE OF THE STANDARD DIALOG TEMPLATES.
*/
+3
View File
@@ -16,6 +16,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "cdlg.h"
#include "filedlgbrowser.h"
/*
* WARNING: DO NOT CHANGE THE SIZE OF THE STANDARD DIALOG TEMPLATES.
*/
+3
View File
@@ -16,6 +16,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "cdlg.h"
#include "filedlgbrowser.h"
/*
* WARNING: DO NOT CHANGE THE SIZE OF THE STANDARD DIALOG TEMPLATES.
*/
+3
View File
@@ -16,6 +16,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "cdlg.h"
#include "filedlgbrowser.h"
/*
* WARNING: DO NOT CHANGE THE SIZE OF THE STANDARD DIALOG TEMPLATES.
*/
+3
View File
@@ -16,6 +16,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "cdlg.h"
#include "filedlgbrowser.h"
/*
* WARNING: DO NOT CHANGE THE SIZE OF THE STANDARD DIALOG TEMPLATES.
*/
+3 -2
View File
@@ -20,6 +20,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "cdlg.h"
#include "filedlgbrowser.h"
/*
* WARNING: DO NOT CHANGE THE SIZE OF THE STANDARD DIALOG TEMPLATES.
*/
@@ -709,5 +712,3 @@ STRINGTABLE DISCARDABLE
PD32_PRINTER_STATUS_SERVER_UNKNOWN "找不到列印服務器; "
PD32_PRINTER_STATUS_POWER_SAVE "省電狀態; "
}
#pragma code_page(default)
+1 -6
View File
@@ -19,9 +19,7 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "windef.h"
#include "winbase.h"
#include "winver.h"
#include "cdlg.h"
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
@@ -73,9 +71,6 @@ PD32_PORTRAIT ICON pd32_portrait.ico
/* @makedep: pd32_landscape.ico */
PD32_LANDSCAPE ICON pd32_landscape.ico
/* @makedep: 800.bmp */
800 BITMAP DISCARDABLE LOADONCALL "800.bmp"
/* @makedep: folder.ico */
FOLDER ICON folder.ico
+21 -21
View File
@@ -93,7 +93,7 @@ typedef struct CCPRIVATE
/***********************************************************************
* CC_HSLtoRGB [internal]
*/
int CC_HSLtoRGB(char c, int hue, int sat, int lum)
static int CC_HSLtoRGB(char c, int hue, int sat, int lum)
{
int res = 0, maxrgb;
@@ -138,7 +138,7 @@ int CC_HSLtoRGB(char c, int hue, int sat, int lum)
/***********************************************************************
* CC_RGBtoHSL [internal]
*/
int CC_RGBtoHSL(char c, int r, int g, int b)
static int CC_RGBtoHSL(char c, int r, int g, int b)
{
WORD maxi, mini, mmsum, mmdif, result = 0;
int iresult = 0;
@@ -365,7 +365,7 @@ static int CC_MouseCheckColorGraph( HWND hDlg, int dlgitem, int *hori, int *vert
* CC_MouseCheckResultWindow [internal]
* test if double click one of the result colors
*/
int CC_MouseCheckResultWindow( HWND hDlg, LPARAM lParam )
static int CC_MouseCheckResultWindow( HWND hDlg, LPARAM lParam )
{
HWND hwnd;
POINT point;
@@ -386,7 +386,7 @@ int CC_MouseCheckResultWindow( HWND hDlg, LPARAM lParam )
/***********************************************************************
* CC_CheckDigitsInEdit [internal]
*/
int CC_CheckDigitsInEdit( HWND hwnd, int maxval )
static int CC_CheckDigitsInEdit( HWND hwnd, int maxval )
{
int i, k, m, result, value;
long editpos;
@@ -428,7 +428,7 @@ int CC_CheckDigitsInEdit( HWND hwnd, int maxval )
/***********************************************************************
* CC_PaintSelectedColor [internal]
*/
void CC_PaintSelectedColor( HWND hDlg, COLORREF cr )
static void CC_PaintSelectedColor( HWND hDlg, COLORREF cr )
{
RECT rect;
HDC hdc;
@@ -452,7 +452,7 @@ void CC_PaintSelectedColor( HWND hDlg, COLORREF cr )
/***********************************************************************
* CC_PaintTriangle [internal]
*/
void CC_PaintTriangle( HWND hDlg, int y)
static void CC_PaintTriangle( HWND hDlg, int y)
{
HDC hDC;
long temp;
@@ -503,7 +503,7 @@ void CC_PaintTriangle( HWND hDlg, int y)
/***********************************************************************
* CC_PaintCross [internal]
*/
void CC_PaintCross( HWND hDlg, int x, int y)
static void CC_PaintCross( HWND hDlg, int x, int y)
{
HDC hDC;
int w = GetDialogBaseUnits() - 1;
@@ -660,7 +660,7 @@ static void CC_PaintLumBar( HWND hDlg, int hue, int sat )
/***********************************************************************
* CC_EditSetRGB [internal]
*/
void CC_EditSetRGB( HWND hDlg, COLORREF cr )
static void CC_EditSetRGB( HWND hDlg, COLORREF cr )
{
char buffer[10];
LPCCPRIV lpp = GetPropW( hDlg, szColourDialogProp );
@@ -683,7 +683,7 @@ void CC_EditSetRGB( HWND hDlg, COLORREF cr )
/***********************************************************************
* CC_EditSetHSL [internal]
*/
void CC_EditSetHSL( HWND hDlg, int h, int s, int l )
static void CC_EditSetHSL( HWND hDlg, int h, int s, int l )
{
char buffer[10];
LPCCPRIV lpp = GetPropW( hDlg, szColourDialogProp );
@@ -705,7 +705,7 @@ void CC_EditSetHSL( HWND hDlg, int h, int s, int l )
/***********************************************************************
* CC_SwitchToFullSize [internal]
*/
void CC_SwitchToFullSize( HWND hDlg, COLORREF result, LPCRECT lprect )
static void CC_SwitchToFullSize( HWND hDlg, COLORREF result, LPCRECT lprect )
{
int i;
LPCCPRIV lpp = GetPropW( hDlg, szColourDialogProp );
@@ -784,7 +784,7 @@ static void CC_PaintPredefColorArray( HWND hDlg, int rows, int cols)
* CC_PaintUserColorArray [internal]
* Paint the 16 user-selected colors
*/
void CC_PaintUserColorArray( HWND hDlg, int rows, int cols, const COLORREF *lpcr )
static void CC_PaintUserColorArray( HWND hDlg, int rows, int cols, const COLORREF *lpcr )
{
HWND hwnd = GetDlgItem(hDlg, 0x2d1);
RECT rect, blockrect;
@@ -835,7 +835,7 @@ void CC_PaintUserColorArray( HWND hDlg, int rows, int cols, const COLORREF *lpcr
/***********************************************************************
* CC_HookCallChk [internal]
*/
BOOL CC_HookCallChk( const CHOOSECOLORW *lpcc )
static BOOL CC_HookCallChk( const CHOOSECOLORW *lpcc )
{
if (lpcc)
if(lpcc->Flags & CC_ENABLEHOOK)
@@ -847,7 +847,7 @@ BOOL CC_HookCallChk( const CHOOSECOLORW *lpcc )
/***********************************************************************
* CC_WMInitDialog [internal]
*/
static LONG CC_WMInitDialog( HWND hDlg, WPARAM wParam, LPARAM lParam )
static LRESULT CC_WMInitDialog( HWND hDlg, WPARAM wParam, LPARAM lParam )
{
int i, res;
int r, g, b;
@@ -1081,7 +1081,7 @@ static LRESULT CC_WMCommand( HWND hDlg, WPARAM wParam, LPARAM lParam, WORD notif
/***********************************************************************
* CC_WMPaint [internal]
*/
LRESULT CC_WMPaint( HWND hDlg, WPARAM wParam, LPARAM lParam )
static LRESULT CC_WMPaint( HWND hDlg )
{
PAINTSTRUCT ps;
LPCCPRIV lpp = GetPropW( hDlg, szColourDialogProp );
@@ -1103,7 +1103,7 @@ LRESULT CC_WMPaint( HWND hDlg, WPARAM wParam, LPARAM lParam )
/***********************************************************************
* CC_WMLButtonUp [internal]
*/
LRESULT CC_WMLButtonUp( HWND hDlg, WPARAM wParam, LPARAM lParam )
static LRESULT CC_WMLButtonUp( HWND hDlg )
{
LPCCPRIV lpp = GetPropW( hDlg, szColourDialogProp );
@@ -1120,7 +1120,7 @@ LRESULT CC_WMLButtonUp( HWND hDlg, WPARAM wParam, LPARAM lParam )
/***********************************************************************
* CC_WMMouseMove [internal]
*/
LRESULT CC_WMMouseMove( HWND hDlg, LPARAM lParam )
static LRESULT CC_WMMouseMove( HWND hDlg, LPARAM lParam )
{
LPCCPRIV lpp = GetPropW( hDlg, szColourDialogProp );
int r, g, b;
@@ -1158,7 +1158,7 @@ LRESULT CC_WMMouseMove( HWND hDlg, LPARAM lParam )
/***********************************************************************
* CC_WMLButtonDown [internal]
*/
LRESULT CC_WMLButtonDown( HWND hDlg, WPARAM wParam, LPARAM lParam )
static LRESULT CC_WMLButtonDown( HWND hDlg, LPARAM lParam )
{
LPCCPRIV lpp = GetPropW( hDlg, szColourDialogProp );
int r, g, b, i;
@@ -1252,7 +1252,7 @@ static INT_PTR CALLBACK ColorDlgProc( HWND hDlg, UINT message,
return TRUE;
break;
case WM_PAINT:
if ( CC_WMPaint(hDlg, wParam, lParam))
if (CC_WMPaint(hDlg))
return TRUE;
break;
case WM_LBUTTONDBLCLK:
@@ -1264,11 +1264,11 @@ static INT_PTR CALLBACK ColorDlgProc( HWND hDlg, UINT message,
return TRUE;
break;
case WM_LBUTTONUP: /* FIXME: ClipCursor off (if in color graph)*/
if (CC_WMLButtonUp(hDlg, wParam, lParam))
if (CC_WMLButtonUp(hDlg))
return TRUE;
break;
case WM_LBUTTONDOWN:/* FIXME: ClipCursor on (if in color graph)*/
if (CC_WMLButtonDown(hDlg, wParam, lParam))
if (CC_WMLButtonDown(hDlg, lParam))
return TRUE;
break;
}
@@ -1366,7 +1366,7 @@ BOOL WINAPI ChooseColorA( LPCHOOSECOLORA lpChCol )
lpcc->lCustData = lpChCol->lCustData;
lpcc->lpfnHook = lpChCol->lpfnHook;
if ((lpcc->Flags & CC_ENABLETEMPLATE) && (lpChCol->lpTemplateName)) {
if (HIWORD(lpChCol->lpTemplateName)) {
if (!IS_INTRESOURCE(lpChCol->lpTemplateName)) {
INT len = MultiByteToWideChar( CP_ACP, 0, lpChCol->lpTemplateName, -1, NULL, 0);
template_name = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) );
MultiByteToWideChar( CP_ACP, 0, lpChCol->lpTemplateName, -1, template_name, len );
+1 -1
View File
@@ -12,7 +12,7 @@
<file>filedlg.c</file>
<file>filedlg31.c</file>
<file>filedlgbrowser.c</file>
<file>finddlg32.c</file>
<file>finddlg.c</file>
<file>fontdlg.c</file>
<file>printdlg.c</file>
<file>rsrc.rc</file>
+46 -185
View File
@@ -105,11 +105,6 @@ typedef struct tagLookInInfo
UINT uSelectedItem;
} LookInInfos;
typedef struct tagFD32_PRIVATE
{
OPENFILENAMEA *ofnA; /* original structure if 32bits ansi dialog */
} FD32_PRIVATE, *PFD32_PRIVATE;
/***********************************************************************
* Defines and global variables
@@ -271,6 +266,13 @@ static BOOL GetFileName95(FileOpenDlgInfos *fodInfos)
return FALSE;
}
/* msdn: explorer style dialogs permit sizing by default.
* The OFN_ENABLESIZING flag is only needed when a hook or
* custom tmeplate is provided */
if( (fodInfos->ofnInfos->Flags & OFN_EXPLORER) &&
!(fodInfos->ofnInfos->Flags & ( OFN_ENABLEHOOK | OFN_ENABLETEMPLATE | OFN_ENABLETEMPLATEHANDLE)))
fodInfos->ofnInfos->Flags |= OFN_ENABLESIZING;
if (fodInfos->ofnInfos->Flags & OFN_ENABLESIZING)
{
((LPDLGTEMPLATEW)template)->style |= WS_SIZEBOX;
@@ -1320,15 +1322,16 @@ static LRESULT FILEDLG95_InitControls(HWND hwnd)
{VIEW_LIST, FCIDM_TB_SMALLICON, TBSTATE_ENABLED, BTNS_BUTTON, {0, 0}, 0, 0 },
{VIEW_DETAILS, FCIDM_TB_REPORTVIEW, TBSTATE_ENABLED, BTNS_BUTTON, {0, 0}, 0, 0 },
};
TBADDBITMAP tba[2];
static const TBADDBITMAP tba = {HINST_COMMCTRL, IDB_VIEW_SMALL_COLOR};
RECT rectTB;
RECT rectlook;
FileOpenDlgInfos *fodInfos = GetPropA(hwnd,FileOpenDlgInfosStr);
tba[0].hInst = HINST_COMMCTRL;
tba[0].nID = IDB_VIEW_SMALL_COLOR;
tba[1].hInst = COMDLG32_hInstance;
tba[1].nID = 800;
HIMAGELIST toolbarImageList;
SHFILEINFOA shFileInfo;
ITEMIDLIST *desktopPidl;
FileOpenDlgInfos *fodInfos = GetPropA(hwnd,FileOpenDlgInfosStr);
TRACE("%p\n", fodInfos);
@@ -1378,9 +1381,19 @@ static LRESULT FILEDLG95_InitControls(HWND hwnd)
/* FIXME: use TB_LOADIMAGES when implemented */
/* SendMessageW(fodInfos->DlgInfos.hwndTB, TB_LOADIMAGES, IDB_VIEW_SMALL_COLOR, HINST_COMMCTRL);*/
SendMessageW(fodInfos->DlgInfos.hwndTB, TB_SETMAXTEXTROWS, 0, 0);
SendMessageW(fodInfos->DlgInfos.hwndTB, TB_ADDBITMAP, 12, (LPARAM) &tba[0]);
SendMessageW(fodInfos->DlgInfos.hwndTB, TB_ADDBITMAP, 1, (LPARAM) &tba[1]);
SendMessageW(fodInfos->DlgInfos.hwndTB, TB_ADDBITMAP, 12, (LPARAM) &tba);
/* Retrieve and add desktop icon to the toolbar */
toolbarImageList = (HIMAGELIST)SendMessageW(fodInfos->DlgInfos.hwndTB, TB_GETIMAGELIST, 0, 0L);
SHGetSpecialFolderLocation(hwnd, CSIDL_DESKTOP, &desktopPidl);
SHGetFileInfoA((LPCSTR)desktopPidl, 0, &shFileInfo, sizeof(shFileInfo),
SHGFI_PIDL | SHGFI_ICON | SHGFI_SMALLICON);
ImageList_AddIcon(toolbarImageList, shFileInfo.hIcon);
DestroyIcon(shFileInfo.hIcon);
CoTaskMemFree(desktopPidl);
/* Finish Toolbar Construction */
SendMessageW(fodInfos->DlgInfos.hwndTB, TB_ADDBUTTONSW, 9, (LPARAM) tbb);
SendMessageW(fodInfos->DlgInfos.hwndTB, TB_AUTOSIZE, 0, 0);
@@ -1509,12 +1522,11 @@ static LRESULT FILEDLG95_InitControls(HWND hwnd)
if ( win98plus && handledPath == FALSE &&
fodInfos->filter && *fodInfos->filter) {
BOOL searchMore = TRUE;
LPCWSTR lpstrPos = fodInfos->filter;
WIN32_FIND_DATAW FindFileData;
HANDLE hFind;
while (searchMore)
while (1)
{
/* filter is a list... title\0ext\0......\0\0 */
@@ -1532,7 +1544,6 @@ static LRESULT FILEDLG95_InitControls(HWND hwnd)
lpstrPos += lstrlenW(lpstrPos) + 1;
} else {
searchMore = FALSE;
MemFree(fodInfos->initdir);
fodInfos->initdir = MemAlloc(MAX_PATH*sizeof(WCHAR));
@@ -1541,6 +1552,7 @@ static LRESULT FILEDLG95_InitControls(HWND hwnd)
handledPath = TRUE;
TRACE("No initial dir specified, but files of type %s found in current, so using it\n",
debugstr_w(lpstrPos));
FindClose(hFind);
break;
}
}
@@ -1977,15 +1989,15 @@ BOOL FILEDLG95_OnOpen(HWND hwnd)
TRACE("hwnd=%p\n", hwnd);
/* try to browse the selected item */
if(BrowseSelectedFolder(hwnd))
return FALSE;
/* get the files from the edit control */
nFileCount = FILEDLG95_FILENAME_GetFileNames(hwnd, &lpstrFileList, &sizeUsed);
/* try if the user selected a folder in the shellview */
if(nFileCount == 0)
{
BrowseSelectedFolder(hwnd);
return FALSE;
}
if(nFileCount > 1)
{
@@ -3189,7 +3201,7 @@ static int FILEDLG95_LOOKIN_RemoveMostExpandedItem(HWND hwnd)
if(liInfos->iMaxIndentation <= 2)
return -1;
if((iItemPos = FILEDLG95_LOOKIN_SearchItem(hwnd,(WPARAM)liInfos->iMaxIndentation,SEARCH_EXP)) >=0)
if((iItemPos = FILEDLG95_LOOKIN_SearchItem(hwnd,liInfos->iMaxIndentation,SEARCH_EXP)) >=0)
{
SFOLDER *tmpFolder = (LPSFOLDER) CBGetItemDataPtr(hwnd,iItemPos);
COMDLG32_SHFree(tmpFolder->pidlItem);
@@ -3240,6 +3252,7 @@ static int FILEDLG95_LOOKIN_SearchItem(HWND hwnd,WPARAM searchArg,int iSearchMet
static void FILEDLG95_LOOKIN_Clean(HWND hwnd)
{
FileOpenDlgInfos *fodInfos = GetPropA(hwnd,FileOpenDlgInfosStr);
LookInInfos *liInfos = GetPropA(fodInfos->DlgInfos.hwndLookInCB,LookInInfosStr);
int iPos;
int iCount = CBGetCount(fodInfos->DlgInfos.hwndLookInCB);
@@ -3258,9 +3271,10 @@ static void FILEDLG95_LOOKIN_Clean(HWND hwnd)
}
/* LookInInfos structure */
MemFree(liInfos);
RemovePropA(fodInfos->DlgInfos.hwndLookInCB,LookInInfosStr);
}
/***********************************************************************
* FILEDLG95_FILENAME_FillFromSelection
*
@@ -3344,7 +3358,7 @@ void FILEDLG95_FILENAME_FillFromSelection (HWND hwnd)
SetWindowTextW( fodInfos->DlgInfos.hwndFileName, lpstrAllFile );
/* Select the file name like Windows does */
SendMessageW(fodInfos->DlgInfos.hwndFileName, EM_SETSEL, 0, (LPARAM)-1);
SendMessageW(fodInfos->DlgInfos.hwndFileName, EM_SETSEL, 0, -1);
}
HeapFree(GetProcessHeap(),0, lpstrAllFile );
}
@@ -3726,10 +3740,10 @@ static void MemFree(void *mem)
* by a 32 bits application
*
*/
static BOOL FD32_GetTemplate(PFD31_DATA lfs)
BOOL FD32_GetTemplate(PFD31_DATA lfs)
{
LPOPENFILENAMEW ofnW = lfs->ofnW;
PFD32_PRIVATE priv = (PFD32_PRIVATE) lfs->private1632;
LPOPENFILENAMEA ofnA = lfs->ofnA;
HANDLE hDlgTmpl;
if (ofnW->Flags & OFN_ENABLETEMPLATEHANDLE)
@@ -3743,9 +3757,9 @@ static BOOL FD32_GetTemplate(PFD31_DATA lfs)
else if (ofnW->Flags & OFN_ENABLETEMPLATE)
{
HRSRC hResInfo;
if (priv->ofnA)
hResInfo = FindResourceA(priv->ofnA->hInstance,
priv->ofnA->lpTemplateName,
if (ofnA)
hResInfo = FindResourceA(ofnA->hInstance,
ofnA->lpTemplateName,
(LPSTR)RT_DIALOG);
else
hResInfo = FindResourceW(ofnW->hInstance,
@@ -3782,151 +3796,6 @@ static BOOL FD32_GetTemplate(PFD31_DATA lfs)
}
/************************************************************************
* FD32_Init [internal]
* called from the common 16/32 code to initialize 32 bit data
*/
static BOOL CALLBACK FD32_Init(LPARAM lParam, PFD31_DATA lfs, DWORD data)
{
BOOL IsUnicode = (BOOL) data;
PFD32_PRIVATE priv;
priv = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(FD32_PRIVATE));
lfs->private1632 = priv;
if (NULL == lfs->private1632) return FALSE;
if (IsUnicode)
{
lfs->ofnW = (LPOPENFILENAMEW) lParam;
if (lfs->ofnW->Flags & OFN_ENABLEHOOK)
if (lfs->ofnW->lpfnHook)
lfs->hook = TRUE;
}
else
{
priv->ofnA = (LPOPENFILENAMEA) lParam;
if (priv->ofnA->Flags & OFN_ENABLEHOOK)
if (priv->ofnA->lpfnHook)
lfs->hook = TRUE;
lfs->ofnW = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*lfs->ofnW));
FD31_MapOfnStructA(priv->ofnA, lfs->ofnW, lfs->open);
}
if (! FD32_GetTemplate(lfs)) return FALSE;
return TRUE;
}
/***********************************************************************
* FD32_CallWindowProc [internal]
*
* called from the common 16/32 code to call the appropriate hook
*/
static BOOL CALLBACK FD32_CallWindowProc(const FD31_DATA *lfs, UINT wMsg, WPARAM wParam,
LPARAM lParam)
{
BOOL ret;
PFD32_PRIVATE priv = (PFD32_PRIVATE) lfs->private1632;
if (priv->ofnA)
{
TRACE("Call hookA %p (%p, %04x, %08lx, %08lx)\n",
priv->ofnA->lpfnHook, lfs->hwnd, wMsg, wParam, lParam);
ret = priv->ofnA->lpfnHook(lfs->hwnd, wMsg, wParam, lParam);
TRACE("ret hookA %p (%p, %04x, %08lx, %08lx)\n",
priv->ofnA->lpfnHook, lfs->hwnd, wMsg, wParam, lParam);
return ret;
}
TRACE("Call hookW %p (%p, %04x, %08lx, %08lx)\n",
lfs->ofnW->lpfnHook, lfs->hwnd, wMsg, wParam, lParam);
ret = lfs->ofnW->lpfnHook(lfs->hwnd, wMsg, wParam, lParam);
TRACE("Ret hookW %p (%p, %04x, %08lx, %08lx)\n",
lfs->ofnW->lpfnHook, lfs->hwnd, wMsg, wParam, lParam);
return ret;
}
/***********************************************************************
* FD32_UpdateResult [internal]
* update the real client structures if any
*/
static void CALLBACK FD32_UpdateResult(const FD31_DATA *lfs)
{
PFD32_PRIVATE priv = (PFD32_PRIVATE) lfs->private1632;
LPOPENFILENAMEW ofnW = lfs->ofnW;
if (priv->ofnA)
{
LPSTR lpszTemp;
if (ofnW->nMaxFile &&
!WideCharToMultiByte( CP_ACP, 0, ofnW->lpstrFile, -1,
priv->ofnA->lpstrFile, ofnW->nMaxFile, NULL, NULL ))
priv->ofnA->lpstrFile[ofnW->nMaxFile-1] = 0;
/* offsets are not guaranteed to be the same in WCHAR to MULTIBYTE conversion */
/* set filename offset */
lpszTemp = PathFindFileNameA(priv->ofnA->lpstrFile);
priv->ofnA->nFileOffset = (lpszTemp - priv->ofnA->lpstrFile);
/* set extension offset */
lpszTemp = PathFindExtensionA(priv->ofnA->lpstrFile);
priv->ofnA->nFileExtension = (*lpszTemp) ? (lpszTemp - priv->ofnA->lpstrFile) + 1 : 0;
}
}
/***********************************************************************
* FD32_UpdateFileTitle [internal]
* update the real client structures if any
*/
static void CALLBACK FD32_UpdateFileTitle(const FD31_DATA *lfs)
{
PFD32_PRIVATE priv = (PFD32_PRIVATE) lfs->private1632;
LPOPENFILENAMEW ofnW = lfs->ofnW;
if (priv->ofnA)
{
if (!WideCharToMultiByte( CP_ACP, 0, ofnW->lpstrFileTitle, -1,
priv->ofnA->lpstrFileTitle, ofnW->nMaxFileTitle, NULL, NULL ))
priv->ofnA->lpstrFileTitle[ofnW->nMaxFileTitle-1] = 0;
}
}
/***********************************************************************
* FD32_SendLbGetCurSel [internal]
* retrieve selected listbox item
*/
static LRESULT CALLBACK FD32_SendLbGetCurSel(const FD31_DATA *lfs)
{
return SendDlgItemMessageW(lfs->hwnd, lst1, LB_GETCURSEL, 0, 0);
}
/************************************************************************
* FD32_Destroy [internal]
* called from the common 16/32 code to cleanup 32 bit data
*/
static void CALLBACK FD32_Destroy(const FD31_DATA *lfs)
{
PFD32_PRIVATE priv = (PFD32_PRIVATE) lfs->private1632;
/* if ofnW has been allocated, have to free everything in it */
if (NULL != priv && NULL != priv->ofnA)
{
FD31_FreeOfnW(lfs->ofnW);
HeapFree(GetProcessHeap(), 0, lfs->ofnW);
}
}
static void FD32_SetupCallbacks(PFD31_CALLBACKS callbacks)
{
callbacks->Init = FD32_Init;
callbacks->CWP = FD32_CallWindowProc;
callbacks->UpdateResult = FD32_UpdateResult;
callbacks->UpdateFileTitle = FD32_UpdateFileTitle;
callbacks->SendLbGetCurSel = FD32_SendLbGetCurSel;
callbacks->Destroy = FD32_Destroy;
}
/***********************************************************************
* FD32_WMMeasureItem [internal]
*/
@@ -3998,20 +3867,16 @@ static BOOL GetFileName31A(LPOPENFILENAMEA lpofn, /* address of structure with d
UINT dlgType /* type dialogue : open/save */
)
{
HINSTANCE hInst;
BOOL bRet = FALSE;
PFD31_DATA lfs;
FD31_CALLBACKS callbacks;
if (!lpofn || !FD31_Init()) return FALSE;
TRACE("ofn flags %08x\n", lpofn->Flags);
FD32_SetupCallbacks(&callbacks);
lfs = FD31_AllocPrivate((LPARAM) lpofn, dlgType, &callbacks, (DWORD) FALSE);
lfs = FD31_AllocPrivate((LPARAM) lpofn, dlgType, FALSE);
if (lfs)
{
hInst = (HINSTANCE)GetWindowLongPtrW( lpofn->hwndOwner, GWLP_HINSTANCE );
bRet = DialogBoxIndirectParamA( hInst, lfs->template, lpofn->hwndOwner,
bRet = DialogBoxIndirectParamA( COMDLG32_hInstance, lfs->template, lpofn->hwndOwner,
FD32_FileOpenDlgProc, (LPARAM)lfs);
FD31_DestroyPrivate(lfs);
}
@@ -4029,19 +3894,15 @@ static BOOL GetFileName31W(LPOPENFILENAMEW lpofn, /* address of structure with d
UINT dlgType /* type dialogue : open/save */
)
{
HINSTANCE hInst;
BOOL bRet = FALSE;
PFD31_DATA lfs;
FD31_CALLBACKS callbacks;
if (!lpofn || !FD31_Init()) return FALSE;
FD32_SetupCallbacks(&callbacks);
lfs = FD31_AllocPrivate((LPARAM) lpofn, dlgType, &callbacks, (DWORD) TRUE);
lfs = FD31_AllocPrivate((LPARAM) lpofn, dlgType, TRUE);
if (lfs)
{
hInst = (HINSTANCE)GetWindowLongPtrW( lpofn->hwndOwner, GWLP_HINSTANCE );
bRet = DialogBoxIndirectParamW( hInst, lfs->template, lpofn->hwndOwner,
bRet = DialogBoxIndirectParamW( COMDLG32_hInstance, lfs->template, lpofn->hwndOwner,
FD32_FileOpenDlgProc, (LPARAM)lfs);
FD31_DestroyPrivate(lfs);
}
+77 -13
View File
@@ -109,7 +109,24 @@ static void FD31_StripEditControl(HWND hwnd)
BOOL FD31_CallWindowProc(const FD31_DATA *lfs, UINT wMsg, WPARAM wParam,
LPARAM lParam)
{
return lfs->callbacks->CWP(lfs, wMsg, wParam, lParam);
BOOL ret;
if (lfs->ofnA)
{
TRACE("Call hookA %p (%p, %04x, %08lx, %08lx)\n",
lfs->ofnA->lpfnHook, lfs->hwnd, wMsg, wParam, lParam);
ret = lfs->ofnA->lpfnHook(lfs->hwnd, wMsg, wParam, lParam);
TRACE("ret hookA %p (%p, %04x, %08lx, %08lx)\n",
lfs->ofnA->lpfnHook, lfs->hwnd, wMsg, wParam, lParam);
return ret;
}
TRACE("Call hookW %p (%p, %04x, %08lx, %08lx)\n",
lfs->ofnW->lpfnHook, lfs->hwnd, wMsg, wParam, lParam);
ret = lfs->ofnW->lpfnHook(lfs->hwnd, wMsg, wParam, lParam);
TRACE("Ret hookW %p (%p, %04x, %08lx, %08lx)\n",
lfs->ofnW->lpfnHook, lfs->hwnd, wMsg, wParam, lParam);
return ret;
}
/***********************************************************************
@@ -251,7 +268,7 @@ LONG FD31_WMDrawItem(HWND hWnd, WPARAM wParam, LPARAM lParam,
SetBkColor( lpdis->hDC, oldBk );
SetTextColor( lpdis->hDC, oldText );
}
DrawIcon(lpdis->hDC, lpdis->rcItem.left, lpdis->rcItem.top, hFolder);
DrawIconEx( lpdis->hDC, lpdis->rcItem.left, lpdis->rcItem.top, hFolder, 16, 16, 0, 0, DI_NORMAL );
HeapFree(GetProcessHeap(), 0, str);
return TRUE;
}
@@ -285,7 +302,7 @@ LONG FD31_WMDrawItem(HWND hWnd, WPARAM wParam, LPARAM lParam,
SetBkColor( lpdis->hDC, oldBk );
SetTextColor( lpdis->hDC, oldText );
}
DrawIcon(lpdis->hDC, lpdis->rcItem.left, lpdis->rcItem.top, hIcon);
DrawIconEx( lpdis->hDC, lpdis->rcItem.left, lpdis->rcItem.top, hIcon, 16, 16, 0, 0, DI_NORMAL );
HeapFree(GetProcessHeap(), 0, str);
return TRUE;
}
@@ -300,6 +317,7 @@ static void FD31_UpdateResult(const FD31_DATA *lfs, const WCHAR *tmpstr)
{
int lenstr2;
LPOPENFILENAMEW ofnW = lfs->ofnW;
LPOPENFILENAMEA ofnA = lfs->ofnA;
WCHAR tmpstr2[BUFFILE];
WCHAR *p;
@@ -329,7 +347,23 @@ static void FD31_UpdateResult(const FD31_DATA *lfs, const WCHAR *tmpstr)
debugstr_w(ofnW->lpstrFile), ofnW->nFileOffset, ofnW->nFileExtension);
/* update the real client structures if any */
lfs->callbacks->UpdateResult(lfs);
if (ofnA)
{
LPSTR lpszTemp;
if (ofnW->nMaxFile &&
!WideCharToMultiByte( CP_ACP, 0, ofnW->lpstrFile, -1,
ofnA->lpstrFile, ofnA->nMaxFile, NULL, NULL ))
ofnA->lpstrFile[ofnA->nMaxFile-1] = 0;
/* offsets are not guaranteed to be the same in WCHAR to MULTIBYTE conversion */
/* set filename offset */
lpszTemp = PathFindFileNameA(ofnA->lpstrFile);
ofnA->nFileOffset = (lpszTemp - ofnA->lpstrFile);
/* set extension offset */
lpszTemp = PathFindExtensionA(ofnA->lpstrFile);
ofnA->nFileExtension = (*lpszTemp) ? (lpszTemp - ofnA->lpstrFile) + 1 : 0;
}
}
/***********************************************************************
@@ -340,12 +374,19 @@ static void FD31_UpdateFileTitle(const FD31_DATA *lfs)
{
LONG lRet;
LPOPENFILENAMEW ofnW = lfs->ofnW;
LPOPENFILENAMEA ofnA = lfs->ofnA;
if (ofnW->lpstrFileTitle != NULL)
{
lRet = SendDlgItemMessageW(lfs->hwnd, lst1, LB_GETCURSEL, 0, 0);
SendDlgItemMessageW(lfs->hwnd, lst1, LB_GETTEXT, lRet,
(LPARAM)ofnW->lpstrFileTitle );
lfs->callbacks->UpdateFileTitle(lfs);
if (ofnA)
{
if (!WideCharToMultiByte( CP_ACP, 0, ofnW->lpstrFileTitle, -1,
ofnA->lpstrFileTitle, ofnA->nMaxFileTitle, NULL, NULL ))
ofnA->lpstrFileTitle[ofnA->nMaxFileTitle-1] = 0;
}
}
}
@@ -396,7 +437,7 @@ static LRESULT FD31_FileListSelect( const FD31_DATA *lfs )
HWND hWnd = lfs->hwnd;
LPWSTR pstr;
lRet = lfs->callbacks->SendLbGetCurSel(lfs);
lRet = SendDlgItemMessageW(lfs->hwnd, lst1, LB_GETCURSEL, 0, 0);
if (lRet == LB_ERR)
return TRUE;
@@ -737,7 +778,7 @@ void FD31_MapOfnStructA(const OPENFILENAMEA *ofnA, LPOPENFILENAMEW ofnW, BOOL op
ofnW->lpstrDefExt = FD31_DupToW(ofnA->lpstrDefExt, 3);
if ((ofnA->Flags & OFN_ENABLETEMPLATE) && (ofnA->lpTemplateName))
{
if (HIWORD(ofnA->lpTemplateName))
if (!IS_INTRESOURCE(ofnA->lpTemplateName))
{
RtlCreateUnicodeStringFromAsciiz (&usBuffer,ofnA->lpTemplateName);
ofnW->lpTemplateName = usBuffer.Buffer;
@@ -760,7 +801,7 @@ void FD31_FreeOfnW(OPENFILENAMEW *ofnW)
HeapFree(GetProcessHeap(), 0, ofnW->lpstrFileTitle);
HeapFree(GetProcessHeap(), 0, (LPWSTR) ofnW->lpstrInitialDir);
HeapFree(GetProcessHeap(), 0, (LPWSTR) ofnW->lpstrTitle);
if (HIWORD(ofnW->lpTemplateName))
if (!IS_INTRESOURCE(ofnW->lpTemplateName))
HeapFree(GetProcessHeap(), 0, (LPWSTR) ofnW->lpTemplateName);
}
@@ -774,7 +815,13 @@ void FD31_DestroyPrivate(PFD31_DATA lfs)
if (!lfs) return;
hwnd = lfs->hwnd;
TRACE("destroying private allocation %p\n", lfs);
lfs->callbacks->Destroy(lfs);
/* if ofnW has been allocated, have to free everything in it */
if (lfs->ofnA)
{
FD31_FreeOfnW(lfs->ofnW);
HeapFree(GetProcessHeap(), 0, lfs->ofnW);
}
HeapFree(GetProcessHeap(), 0, lfs);
RemovePropA(hwnd, FD31_OFN_PROP);
}
@@ -787,8 +834,7 @@ void FD31_DestroyPrivate(PFD31_DATA lfs)
* On entry : type = dialog procedure type (16,32A,32W)
* dlgType = dialog type (open or save)
*/
PFD31_DATA FD31_AllocPrivate(LPARAM lParam, UINT dlgType,
PFD31_CALLBACKS callbacks, DWORD data)
PFD31_DATA FD31_AllocPrivate(LPARAM lParam, UINT dlgType, BOOL IsUnicode)
{
PFD31_DATA lfs = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(FD31_DATA));
@@ -797,8 +843,26 @@ PFD31_DATA FD31_AllocPrivate(LPARAM lParam, UINT dlgType,
lfs->hook = FALSE;
lfs->lParam = lParam;
lfs->open = (dlgType == OPEN_DIALOG);
lfs->callbacks = callbacks;
if (! lfs->callbacks->Init(lParam, lfs, data))
if (IsUnicode)
{
lfs->ofnA = NULL;
lfs->ofnW = (LPOPENFILENAMEW) lParam;
if (lfs->ofnW->Flags & OFN_ENABLEHOOK)
if (lfs->ofnW->lpfnHook)
lfs->hook = TRUE;
}
else
{
lfs->ofnA = (LPOPENFILENAMEA) lParam;
if (lfs->ofnA->Flags & OFN_ENABLEHOOK)
if (lfs->ofnA->lpfnHook)
lfs->hook = TRUE;
lfs->ofnW = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*lfs->ofnW));
FD31_MapOfnStructA(lfs->ofnA, lfs->ofnW, lfs->open);
}
if (! FD32_GetTemplate(lfs))
{
FD31_DestroyPrivate(lfs);
return NULL;
+6 -20
View File
@@ -21,21 +21,7 @@
#define FD31_OFN_PROP "FILEDLG_OFN"
/* Forward declare */
typedef struct tagFD31_DATA FD31_DATA, *PFD31_DATA;
typedef struct tagFD31_CALLBACKS
{
BOOL (CALLBACK *Init)(LPARAM lParam, PFD31_DATA lfs, DWORD data);
BOOL (CALLBACK *CWP)(const FD31_DATA *lfs, UINT wMsg, WPARAM wParam,
LPARAM lParam); /* CWP instead of CallWindowProc to avoid macro expansion */
void (CALLBACK *UpdateResult)(const FD31_DATA *lfs);
void (CALLBACK *UpdateFileTitle)(const FD31_DATA *lfs);
LRESULT (CALLBACK *SendLbGetCurSel)(const FD31_DATA *lfs);
void (CALLBACK *Destroy)(const FD31_DATA *lfs);
} FD31_CALLBACKS, *PFD31_CALLBACKS;
struct tagFD31_DATA
typedef struct tagFD31_DATA
{
HWND hwnd; /* file dialog window handle */
BOOL hook; /* TRUE if the dialog is hooked */
@@ -46,13 +32,13 @@ struct tagFD31_DATA
BOOL open; /* TRUE if open dialog, FALSE if save dialog */
LPOPENFILENAMEW ofnW; /* pointer either to the original structure or
a W copy for A/16 API */
LPVOID private1632; /* 16/32 bit caller private data */
PFD31_CALLBACKS callbacks; /* callbacks to handle 16/32 bit differences */
};
LPOPENFILENAMEA ofnA; /* original structure if 32bits ansi dialog */
} FD31_DATA, *PFD31_DATA;
extern BOOL FD32_GetTemplate(PFD31_DATA lfs);
extern BOOL FD31_Init(void);
extern PFD31_DATA FD31_AllocPrivate(LPARAM lParam, UINT dlgType,
PFD31_CALLBACKS callbacks, DWORD data);
extern PFD31_DATA FD31_AllocPrivate(LPARAM lParam, UINT dlgType, BOOL IsUnicode);
extern void FD31_DestroyPrivate(PFD31_DATA lfs);
extern void FD31_MapOfnStructA(const OPENFILENAMEA *ofnA, LPOPENFILENAMEW ofnW, BOOL open);
extern void FD31_FreeOfnW(OPENFILENAMEW *ofnW);
@@ -72,11 +72,11 @@ static DWORD COMDLG32_FR_GetFlags(HWND hDlgWnd)
{
DWORD flags = 0;
if(IsDlgButtonChecked(hDlgWnd, rad2) == BST_CHECKED)
flags |= FR_DOWN;
flags |= FR_DOWN;
if(IsDlgButtonChecked(hDlgWnd, chx1) == BST_CHECKED)
flags |= FR_WHOLEWORD;
flags |= FR_WHOLEWORD;
if(IsDlgButtonChecked(hDlgWnd, chx2) == BST_CHECKED)
flags |= FR_MATCHCASE;
flags |= FR_MATCHCASE;
return flags;
}
@@ -94,7 +94,7 @@ static void COMDLG32_FR_HandleWMCommand(HWND hDlgWnd, COMDLG32_FR_Data *pData, i
if(NotifyCode == BN_CLICKED)
{
switch(Id)
switch(Id)
{
case IDOK: /* Find Next */
if(GetDlgItemTextA(hDlgWnd, edt1, pData->fr.lpstrFindWhat, pData->fr.wFindWhatLen) > 0)
@@ -108,7 +108,7 @@ static void COMDLG32_FR_HandleWMCommand(HWND hDlgWnd, COMDLG32_FR_Data *pData, i
}
else
{
strcpy(pData->user_fr.fra->lpstrFindWhat, pData->fr.lpstrFindWhat);
strcpy(pData->user_fr.fra->lpstrFindWhat, pData->fr.lpstrFindWhat);
}
SendMessageA(pData->fr.hwndOwner, FindReplaceMessage, 0, (LPARAM)pData->user_fr.fra);
}
@@ -117,15 +117,15 @@ static void COMDLG32_FR_HandleWMCommand(HWND hDlgWnd, COMDLG32_FR_Data *pData, i
case IDCANCEL:
pData->user_fr.fra->Flags |= COMDLG32_FR_GetFlags(hDlgWnd) | FR_DIALOGTERM;
SendMessageA(pData->fr.hwndOwner, FindReplaceMessage, 0, (LPARAM)pData->user_fr.fra);
DestroyWindow(hDlgWnd);
DestroyWindow(hDlgWnd);
break;
case psh2: /* Replace All */
flag = FR_REPLACEALL;
flag = FR_REPLACEALL;
goto Replace;
case psh1: /* Replace */
flag = FR_REPLACE;
flag = FR_REPLACE;
Replace:
if((pData->fr.Flags & FR_WINE_REPLACE)
&& GetDlgItemTextA(hDlgWnd, edt1, pData->fr.lpstrFindWhat, pData->fr.wFindWhatLen) > 0)
@@ -144,8 +144,8 @@ Replace:
}
else
{
strcpy(pData->user_fr.fra->lpstrFindWhat, pData->fr.lpstrFindWhat);
strcpy(pData->user_fr.fra->lpstrReplaceWith, pData->fr.lpstrReplaceWith);
strcpy(pData->user_fr.fra->lpstrFindWhat, pData->fr.lpstrFindWhat);
strcpy(pData->user_fr.fra->lpstrReplaceWith, pData->fr.lpstrReplaceWith);
}
SendMessageA(pData->fr.hwndOwner, FindReplaceMessage, 0, (LPARAM)pData->user_fr.fra);
}
@@ -181,34 +181,34 @@ static INT_PTR CALLBACK COMDLG32_FindReplaceDlgProc(HWND hDlgWnd, UINT iMsg, WPA
if(iMsg == WM_INITDIALOG)
{
pdata = (COMDLG32_FR_Data *)lParam;
if(!SetPropA(hDlgWnd, (LPSTR)COMDLG32_Atom, (HANDLE)pdata))
if(!SetPropA(hDlgWnd, (LPSTR)COMDLG32_Atom, (HANDLE)pdata))
{
ERR("Could not Set prop; invent a gracefull exit?...\n");
DestroyWindow(hDlgWnd);
DestroyWindow(hDlgWnd);
return FALSE;
}
SendDlgItemMessageA(hDlgWnd, edt1, EM_SETLIMITTEXT, (WPARAM)pdata->fr.wFindWhatLen, 0);
SendDlgItemMessageA(hDlgWnd, edt1, EM_SETLIMITTEXT, pdata->fr.wFindWhatLen, 0);
SendDlgItemMessageA(hDlgWnd, edt1, WM_SETTEXT, 0, (LPARAM)pdata->fr.lpstrFindWhat);
if(pdata->fr.Flags & FR_WINE_REPLACE)
{
SendDlgItemMessageA(hDlgWnd, edt2, EM_SETLIMITTEXT, (WPARAM)pdata->fr.wReplaceWithLen, 0);
SendDlgItemMessageA(hDlgWnd, edt2, EM_SETLIMITTEXT, pdata->fr.wReplaceWithLen, 0);
SendDlgItemMessageA(hDlgWnd, edt2, WM_SETTEXT, 0, (LPARAM)pdata->fr.lpstrReplaceWith);
}
if(!(pdata->fr.Flags & FR_SHOWHELP))
if(!(pdata->fr.Flags & FR_SHOWHELP))
ShowWindow(GetDlgItem(hDlgWnd, pshHelp), SW_HIDE);
if(pdata->fr.Flags & FR_HIDEUPDOWN)
{
{
ShowWindow(GetDlgItem(hDlgWnd, rad1), SW_HIDE);
ShowWindow(GetDlgItem(hDlgWnd, rad2), SW_HIDE);
ShowWindow(GetDlgItem(hDlgWnd, grp1), SW_HIDE);
}
else if(pdata->fr.Flags & FR_NOUPDOWN)
else if(pdata->fr.Flags & FR_NOUPDOWN)
{
EnableWindow(GetDlgItem(hDlgWnd, rad1), FALSE);
EnableWindow(GetDlgItem(hDlgWnd, rad2), FALSE);
EnableWindow(GetDlgItem(hDlgWnd, grp1), FALSE);
}
}
else
{
SendDlgItemMessageA(hDlgWnd, rad1, BM_SETCHECK, pdata->fr.Flags & FR_DOWN ? 0 : BST_CHECKED, 0);
@@ -217,14 +217,14 @@ static INT_PTR CALLBACK COMDLG32_FindReplaceDlgProc(HWND hDlgWnd, UINT iMsg, WPA
if(pdata->fr.Flags & FR_HIDEMATCHCASE)
ShowWindow(GetDlgItem(hDlgWnd, chx2), SW_HIDE);
else if(pdata->fr.Flags & FR_NOMATCHCASE)
else if(pdata->fr.Flags & FR_NOMATCHCASE)
EnableWindow(GetDlgItem(hDlgWnd, chx2), FALSE);
else
SendDlgItemMessageA(hDlgWnd, chx2, BM_SETCHECK, pdata->fr.Flags & FR_MATCHCASE ? BST_CHECKED : 0, 0);
if(pdata->fr.Flags & FR_HIDEWHOLEWORD)
ShowWindow(GetDlgItem(hDlgWnd, chx1), SW_HIDE);
else if(pdata->fr.Flags & FR_NOWHOLEWORD)
else if(pdata->fr.Flags & FR_NOWHOLEWORD)
EnableWindow(GetDlgItem(hDlgWnd, chx1), FALSE);
else
SendDlgItemMessageA(hDlgWnd, chx1, BM_SETCHECK, pdata->fr.Flags & FR_WHOLEWORD ? BST_CHECKED : 0, 0);
@@ -233,7 +233,7 @@ static INT_PTR CALLBACK COMDLG32_FindReplaceDlgProc(HWND hDlgWnd, UINT iMsg, WPA
/* We do not do ShowWindow if hook exists and is FALSE */
/* per MSDN Article Q96135 */
if((pdata->fr.Flags & FR_ENABLEHOOK)
if((pdata->fr.Flags & FR_ENABLEHOOK)
&& ! pdata->fr.lpfnHook(hDlgWnd, iMsg, wParam, (LPARAM) &pdata->fr))
return TRUE;
ShowWindow(hDlgWnd, SW_SHOWNORMAL);
@@ -248,28 +248,28 @@ static INT_PTR CALLBACK COMDLG32_FindReplaceDlgProc(HWND hDlgWnd, UINT iMsg, WPA
else
retval = FALSE;
if(pdata && !retval)
if(pdata && !retval)
{
retval = TRUE;
retval = TRUE;
switch(iMsg)
{
{
case WM_COMMAND:
COMDLG32_FR_HandleWMCommand(hDlgWnd, pdata, LOWORD(wParam), HIWORD(wParam));
break;
break;
case WM_CLOSE:
COMDLG32_FR_HandleWMCommand(hDlgWnd, pdata, IDCANCEL, BN_CLICKED);
break;
break;
case WM_HELP:
/* Heeeeelp! */
FIXME("Got WM_HELP. Who is gonna supply it?\n");
/* Heeeeelp! */
FIXME("Got WM_HELP. Who is gonna supply it?\n");
break;
case WM_CONTEXTMENU:
/* Heeeeelp! */
FIXME("Got WM_CONTEXTMENU. Who is gonna supply it?\n");
break;
case WM_CONTEXTMENU:
/* Heeeeelp! */
FIXME("Got WM_CONTEXTMENU. Who is gonna supply it?\n");
break;
/* FIXME: Handle F1 help */
default:
@@ -283,8 +283,8 @@ static INT_PTR CALLBACK COMDLG32_FindReplaceDlgProc(HWND hDlgWnd, UINT iMsg, WPA
*/
if(iMsg == WM_DESTROY)
{
RemovePropA(hDlgWnd, (LPSTR)COMDLG32_Atom);
HeapFree(GetProcessHeap(), 0, pdata);
RemovePropA(hDlgWnd, (LPSTR)COMDLG32_Atom);
HeapFree(GetProcessHeap(), 0, pdata);
}
return retval;
@@ -304,55 +304,55 @@ static BOOL COMDLG32_FR_CheckPartial(
) {
if(!pfr)
{
COMDLG32_SetCommDlgExtendedError(CDERR_GENERALCODES);
COMDLG32_SetCommDlgExtendedError(CDERR_GENERALCODES);
return FALSE;
}
if(pfr->lStructSize != sizeof(FINDREPLACEA))
{
COMDLG32_SetCommDlgExtendedError(CDERR_STRUCTSIZE);
return FALSE;
COMDLG32_SetCommDlgExtendedError(CDERR_STRUCTSIZE);
return FALSE;
}
if(!IsWindow(pfr->hwndOwner))
{
COMDLG32_SetCommDlgExtendedError(CDERR_DIALOGFAILURE);
return FALSE;
COMDLG32_SetCommDlgExtendedError(CDERR_DIALOGFAILURE);
return FALSE;
}
if((pfr->wFindWhatLen < 1 || !pfr->lpstrFindWhat)
||(Replace && (pfr->wReplaceWithLen < 1 || !pfr->lpstrReplaceWith)))
{
COMDLG32_SetCommDlgExtendedError(FRERR_BUFFERLENGTHZERO);
COMDLG32_SetCommDlgExtendedError(FRERR_BUFFERLENGTHZERO);
return FALSE;
}
if((FindReplaceMessage = RegisterWindowMessageA(FINDMSGSTRINGA)) == 0)
{
COMDLG32_SetCommDlgExtendedError(CDERR_REGISTERMSGFAIL);
COMDLG32_SetCommDlgExtendedError(CDERR_REGISTERMSGFAIL);
return FALSE;
}
if((HelpMessage = RegisterWindowMessageA(HELPMSGSTRINGA)) == 0)
{
COMDLG32_SetCommDlgExtendedError(CDERR_REGISTERMSGFAIL);
COMDLG32_SetCommDlgExtendedError(CDERR_REGISTERMSGFAIL);
return FALSE;
}
if((pfr->Flags & FR_ENABLEHOOK) && !pfr->lpfnHook)
{
COMDLG32_SetCommDlgExtendedError(CDERR_NOHOOK);
COMDLG32_SetCommDlgExtendedError(CDERR_NOHOOK);
return FALSE;
}
if((pfr->Flags & (FR_ENABLETEMPLATE | FR_ENABLETEMPLATEHANDLE)) && !pfr->hInstance)
{
COMDLG32_SetCommDlgExtendedError(CDERR_NOHINSTANCE);
COMDLG32_SetCommDlgExtendedError(CDERR_NOHINSTANCE);
return FALSE;
}
if((pfr->Flags & FR_ENABLETEMPLATE) && !pfr->lpTemplateName)
{
COMDLG32_SetCommDlgExtendedError(CDERR_NOTEMPLATE);
COMDLG32_SetCommDlgExtendedError(CDERR_NOTEMPLATE);
return FALSE;
}
@@ -380,7 +380,7 @@ static HWND COMDLG32_FR_DoFindReplace(
{
HMODULE hmod = COMDLG32_hInstance;
HRSRC htemplate;
if(pdata->fr.Flags & FR_ENABLETEMPLATE)
if(pdata->fr.Flags & FR_ENABLETEMPLATE)
{
hmod = pdata->fr.hInstance;
if(pdata->fr.Flags & FR_WINE_UNICODE)
@@ -391,18 +391,18 @@ static HWND COMDLG32_FR_DoFindReplace(
{
htemplate = FindResourceA(hmod, pdata->fr.lpTemplateName, (LPCSTR)RT_DIALOG);
}
}
}
else
{
{
int rcid = pdata->fr.Flags & FR_WINE_REPLACE ? REPLACEDLGORD
: FINDDLGORD;
htemplate = FindResourceA(hmod, MAKEINTRESOURCEA(rcid), (LPCSTR)RT_DIALOG);
}
if(!htemplate)
{
error = CDERR_FINDRESFAILURE;
goto cleanup;
}
{
error = CDERR_FINDRESFAILURE;
goto cleanup;
}
loadrc = LoadResource(hmod, htemplate);
}
@@ -424,15 +424,15 @@ static HWND COMDLG32_FR_DoFindReplace(
}
hdlgwnd = CreateDialogIndirectParamA(COMDLG32_hInstance,
rcs,
rcs,
pdata->fr.hwndOwner,
COMDLG32_FindReplaceDlgProc,
(LPARAM)pdata);
if(!hdlgwnd)
{
error = CDERR_DIALOGFAILURE;
error = CDERR_DIALOGFAILURE;
cleanup:
COMDLG32_SetCommDlgExtendedError(error);
COMDLG32_SetCommDlgExtendedError(error);
HeapFree(GetProcessHeap(), 0, pdata);
}
return hdlgwnd;
@@ -451,10 +451,10 @@ HWND WINAPI FindTextA(
TRACE("LPFINDREPLACE=%p\n", pfr);
if(!COMDLG32_FR_CheckPartial(pfr, FALSE))
return 0;
return 0;
if((pdata = COMDLG32_AllocMem(sizeof(COMDLG32_FR_Data))) == NULL)
return 0; /* Error has been set */
return 0; /* Error has been set */
pdata->user_fr.fra = pfr;
pdata->fr = *pfr;
@@ -474,10 +474,10 @@ HWND WINAPI ReplaceTextA(
TRACE("LPFINDREPLACE=%p\n", pfr);
if(!COMDLG32_FR_CheckPartial(pfr, TRUE))
return 0;
return 0;
if((pdata = COMDLG32_AllocMem(sizeof(COMDLG32_FR_Data))) == NULL)
return 0; /* Error has been set */
return 0; /* Error has been set */
pdata->user_fr.fra = pfr;
pdata->fr = *pfr;
@@ -503,7 +503,7 @@ HWND WINAPI FindTextW(
TRACE("LPFINDREPLACE=%p\n", pfr);
if(!COMDLG32_FR_CheckPartial((LPFINDREPLACEA)pfr, FALSE))
return 0;
return 0;
len = WideCharToMultiByte( CP_ACP, 0, pfr->lpstrFindWhat, pfr->wFindWhatLen,
NULL, 0, NULL, NULL );
@@ -537,7 +537,7 @@ HWND WINAPI ReplaceTextW(
TRACE("LPFINDREPLACE=%p\n", pfr);
if(!COMDLG32_FR_CheckPartial((LPFINDREPLACEA)pfr, FALSE))
return 0;
return 0;
len1 = WideCharToMultiByte( CP_ACP, 0, pfr->lpstrFindWhat, pfr->wFindWhatLen,
NULL, 0, NULL, NULL );
-496
View File
@@ -1,496 +0,0 @@
/*
* COMMDLG - 16 bits Find & Replace Text Dialogs
*
* Copyright 1994 Martin Ayotte
* Copyright 1996 Albrecht Kleine
*
* 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 <ctype.h>
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#include "windef.h"
#include "winbase.h"
#include "wine/winbase16.h"
#include "wine/winuser16.h"
#include "wingdi.h"
#include "winuser.h"
#include "commdlg.h"
#include "wine/debug.h"
#include "cderr.h"
WINE_DEFAULT_DEBUG_CHANNEL(commdlg);
#include "cdlg.h"
#include "cdlg16.h"
struct FRPRIVATE
{
HANDLE16 hDlgTmpl16; /* handle for resource 16 */
HANDLE16 hResource16; /* handle for allocated resource 16 */
HANDLE16 hGlobal16; /* 16 bits mem block (resources) */
LPCVOID template; /* template for 32 bits resource */
BOOL find; /* TRUE if find dialog, FALSE if replace dialog */
FINDREPLACE16 *fr16;
};
#define LFRPRIVATE struct FRPRIVATE *
BOOL16 CALLBACK FindTextDlgProc16(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam,
LPARAM lParam);
BOOL16 CALLBACK ReplaceTextDlgProc16(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam,
LPARAM lParam);
/***********************************************************************
* FINDDLG_Get16BitsTemplate [internal]
*
* Get a template (FALSE if failure) when 16 bits dialogs are used
* by a 16 bits application
* FIXME : no test was done for the user-provided template cases
*/
static BOOL FINDDLG_Get16BitsTemplate(LFRPRIVATE lfr)
{
LPFINDREPLACE16 fr16 = lfr->fr16;
if (fr16->Flags & FR_ENABLETEMPLATEHANDLE)
{
lfr->template = GlobalLock16(fr16->hInstance);
if (!lfr->template)
{
COMDLG32_SetCommDlgExtendedError(CDERR_MEMLOCKFAILURE);
return FALSE;
}
}
else if (fr16->Flags & FR_ENABLETEMPLATE)
{
HANDLE16 hResInfo;
if (!(hResInfo = FindResource16(fr16->hInstance,
MapSL(fr16->lpTemplateName),
(LPSTR)RT_DIALOG)))
{
COMDLG32_SetCommDlgExtendedError(CDERR_FINDRESFAILURE);
return FALSE;
}
if (!(lfr->hDlgTmpl16 = LoadResource16( fr16->hInstance, hResInfo )))
{
COMDLG32_SetCommDlgExtendedError(CDERR_LOADRESFAILURE);
return FALSE;
}
lfr->hResource16 = lfr->hDlgTmpl16;
lfr->template = LockResource16(lfr->hResource16);
if (!lfr->template)
{
FreeResource16(lfr->hResource16);
COMDLG32_SetCommDlgExtendedError(CDERR_MEMLOCKFAILURE);
return FALSE;
}
}
else
{ /* get resource from (32 bits) own Wine resource; convert it to 16 */
HRSRC hResInfo;
HGLOBAL hDlgTmpl32;
LPCVOID template32;
DWORD size;
HGLOBAL16 hGlobal16;
if (!(hResInfo = FindResourceA(COMDLG32_hInstance,
lfr->find ?
MAKEINTRESOURCEA(FINDDLGORD):MAKEINTRESOURCEA(REPLACEDLGORD),
(LPSTR)RT_DIALOG)))
{
COMDLG32_SetCommDlgExtendedError(CDERR_FINDRESFAILURE);
return FALSE;
}
if (!(hDlgTmpl32 = LoadResource(COMDLG32_hInstance, hResInfo )) ||
!(template32 = LockResource( hDlgTmpl32 )))
{
COMDLG32_SetCommDlgExtendedError(CDERR_LOADRESFAILURE);
return FALSE;
}
size = SizeofResource(COMDLG32_hInstance, hResInfo);
hGlobal16 = GlobalAlloc16(0, size);
if (!hGlobal16)
{
COMDLG32_SetCommDlgExtendedError(CDERR_MEMALLOCFAILURE);
ERR("alloc failure for %d bytes\n", size);
return FALSE;
}
lfr->template = GlobalLock16(hGlobal16);
if (!lfr->template)
{
COMDLG32_SetCommDlgExtendedError(CDERR_MEMLOCKFAILURE);
ERR("global lock failure for %x handle\n", hGlobal16);
GlobalFree16(hGlobal16);
return FALSE;
}
ConvertDialog32To16(template32, size, (LPVOID)lfr->template);
lfr->hDlgTmpl16 = hGlobal16;
lfr->hGlobal16 = hGlobal16;
}
return TRUE;
}
/***********************************************************************
* FINDDLG_FreeResources [internal]
*
* Free resources allocated
*/
static void FINDDLG_FreeResources(LFRPRIVATE lfr)
{
/* free resources */
if (lfr->fr16->Flags & FR_ENABLETEMPLATEHANDLE)
GlobalUnlock16(lfr->fr16->hInstance);
if (lfr->hResource16)
{
GlobalUnlock16(lfr->hResource16);
FreeResource16(lfr->hResource16);
}
if (lfr->hGlobal16)
{
GlobalUnlock16(lfr->hGlobal16);
GlobalFree16(lfr->hGlobal16);
}
}
/***********************************************************************
* FindText (COMMDLG.11)
*/
HWND16 WINAPI FindText16( SEGPTR find )
{
HANDLE16 hInst;
HWND16 ret = 0;
FARPROC16 ptr;
LFRPRIVATE lfr = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(struct FRPRIVATE));
if (!lfr) return 0;
lfr->fr16 = MapSL(find);
lfr->find = TRUE;
if (FINDDLG_Get16BitsTemplate(lfr))
{
hInst = GetWindowLongPtrA( HWND_32(lfr->fr16->hwndOwner), GWLP_HINSTANCE);
ptr = GetProcAddress16(GetModuleHandle16("COMMDLG"), (LPCSTR) 13);
ret = CreateDialogIndirectParam16( hInst, lfr->template,
lfr->fr16->hwndOwner, (DLGPROC16) ptr, find);
FINDDLG_FreeResources(lfr);
}
HeapFree(GetProcessHeap(), 0, lfr);
return ret;
}
/***********************************************************************
* ReplaceText (COMMDLG.12)
*/
HWND16 WINAPI ReplaceText16( SEGPTR find )
{
HANDLE16 hInst;
HWND16 ret = 0;
FARPROC16 ptr;
LFRPRIVATE lfr = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(struct FRPRIVATE));
if (!lfr) return 0;
/*
* FIXME : We should do error checking on the lpFind structure here
* and make CommDlgExtendedError() return the error condition.
*/
lfr->fr16 = MapSL(find);
lfr->find = FALSE;
if (FINDDLG_Get16BitsTemplate(lfr))
{
hInst = GetWindowLongPtrA( HWND_32(lfr->fr16->hwndOwner), GWLP_HINSTANCE);
ptr = GetProcAddress16(GetModuleHandle16("COMMDLG"), (LPCSTR) 14);
ret = CreateDialogIndirectParam16( hInst, lfr->template,
lfr->fr16->hwndOwner, (DLGPROC16) ptr, find);
FINDDLG_FreeResources(lfr);
}
HeapFree(GetProcessHeap(), 0, lfr);
return ret;
}
/***********************************************************************
* FINDDLG_WMInitDialog [internal]
*/
static LRESULT FINDDLG_WMInitDialog(HWND hWnd, LPARAM lParam, LPDWORD lpFlags,
LPCSTR lpstrFindWhat, BOOL fUnicode)
{
SetWindowLongPtrW(hWnd, DWLP_USER, lParam);
*lpFlags &= ~(FR_FINDNEXT | FR_REPLACE | FR_REPLACEALL | FR_DIALOGTERM);
/*
* FIXME : If the initial FindWhat string is empty, we should disable the
* FindNext (IDOK) button. Only after typing some text, the button should be
* enabled.
*/
if (fUnicode) SetDlgItemTextW(hWnd, edt1, (LPCWSTR)lpstrFindWhat);
else SetDlgItemTextA(hWnd, edt1, lpstrFindWhat);
CheckRadioButton(hWnd, rad1, rad2, (*lpFlags & FR_DOWN) ? rad2 : rad1);
if (*lpFlags & (FR_HIDEUPDOWN | FR_NOUPDOWN)) {
EnableWindow(GetDlgItem(hWnd, rad1), FALSE);
EnableWindow(GetDlgItem(hWnd, rad2), FALSE);
}
if (*lpFlags & FR_HIDEUPDOWN) {
ShowWindow(GetDlgItem(hWnd, rad1), SW_HIDE);
ShowWindow(GetDlgItem(hWnd, rad2), SW_HIDE);
ShowWindow(GetDlgItem(hWnd, grp1), SW_HIDE);
}
CheckDlgButton(hWnd, chx1, (*lpFlags & FR_WHOLEWORD) ? 1 : 0);
if (*lpFlags & (FR_HIDEWHOLEWORD | FR_NOWHOLEWORD))
EnableWindow(GetDlgItem(hWnd, chx1), FALSE);
if (*lpFlags & FR_HIDEWHOLEWORD)
ShowWindow(GetDlgItem(hWnd, chx1), SW_HIDE);
CheckDlgButton(hWnd, chx2, (*lpFlags & FR_MATCHCASE) ? 1 : 0);
if (*lpFlags & (FR_HIDEMATCHCASE | FR_NOMATCHCASE))
EnableWindow(GetDlgItem(hWnd, chx2), FALSE);
if (*lpFlags & FR_HIDEMATCHCASE)
ShowWindow(GetDlgItem(hWnd, chx2), SW_HIDE);
if (!(*lpFlags & FR_SHOWHELP)) {
EnableWindow(GetDlgItem(hWnd, pshHelp), FALSE);
ShowWindow(GetDlgItem(hWnd, pshHelp), SW_HIDE);
}
ShowWindow(hWnd, SW_SHOWNORMAL);
return TRUE;
}
/***********************************************************************
* FINDDLG_WMCommand [internal]
*/
static LRESULT FINDDLG_WMCommand(HWND hWnd, WPARAM wParam,
HWND hwndOwner, LPDWORD lpFlags,
LPSTR lpstrFindWhat, WORD wFindWhatLen,
BOOL fUnicode)
{
int uFindReplaceMessage = RegisterWindowMessageA( FINDMSGSTRINGA );
int uHelpMessage = RegisterWindowMessageA( HELPMSGSTRINGA );
switch (wParam) {
case IDOK:
if (fUnicode)
GetDlgItemTextW(hWnd, edt1, (LPWSTR)lpstrFindWhat, wFindWhatLen/2);
else GetDlgItemTextA(hWnd, edt1, lpstrFindWhat, wFindWhatLen);
if (IsDlgButtonChecked(hWnd, rad2))
*lpFlags |= FR_DOWN;
else *lpFlags &= ~FR_DOWN;
if (IsDlgButtonChecked(hWnd, chx1))
*lpFlags |= FR_WHOLEWORD;
else *lpFlags &= ~FR_WHOLEWORD;
if (IsDlgButtonChecked(hWnd, chx2))
*lpFlags |= FR_MATCHCASE;
else *lpFlags &= ~FR_MATCHCASE;
*lpFlags &= ~(FR_REPLACE | FR_REPLACEALL | FR_DIALOGTERM);
*lpFlags |= FR_FINDNEXT;
SendMessageW( hwndOwner, uFindReplaceMessage, 0,
GetWindowLongPtrW(hWnd, DWLP_USER) );
return TRUE;
case IDCANCEL:
*lpFlags &= ~(FR_FINDNEXT | FR_REPLACE | FR_REPLACEALL);
*lpFlags |= FR_DIALOGTERM;
SendMessageW( hwndOwner, uFindReplaceMessage, 0,
GetWindowLongPtrW(hWnd, DWLP_USER) );
DestroyWindow(hWnd);
return TRUE;
case pshHelp:
/* FIXME : should lpfr structure be passed as an argument ??? */
SendMessageA(hwndOwner, uHelpMessage, 0, 0);
return TRUE;
}
return FALSE;
}
/***********************************************************************
* FindTextDlgProc (COMMDLG.13)
*/
BOOL16 CALLBACK FindTextDlgProc16(HWND16 hWnd16, UINT16 wMsg, WPARAM16 wParam,
LPARAM lParam)
{
HWND hWnd = HWND_32(hWnd16);
LPFINDREPLACE16 lpfr;
switch (wMsg) {
case WM_INITDIALOG:
lpfr=MapSL(lParam);
return FINDDLG_WMInitDialog(hWnd, lParam, &(lpfr->Flags),
MapSL(lpfr->lpstrFindWhat), FALSE);
case WM_COMMAND:
lpfr=MapSL(GetWindowLongPtrW(hWnd, DWLP_USER));
return FINDDLG_WMCommand(hWnd, wParam, HWND_32(lpfr->hwndOwner),
&lpfr->Flags, MapSL(lpfr->lpstrFindWhat),
lpfr->wFindWhatLen, FALSE);
}
return FALSE;
}
/***********************************************************************
* REPLACEDLG_WMInitDialog [internal]
*/
static LRESULT REPLACEDLG_WMInitDialog(HWND hWnd, LPARAM lParam,
LPDWORD lpFlags, LPCSTR lpstrFindWhat,
LPCSTR lpstrReplaceWith, BOOL fUnicode)
{
SetWindowLongPtrW(hWnd, DWLP_USER, lParam);
*lpFlags &= ~(FR_FINDNEXT | FR_REPLACE | FR_REPLACEALL | FR_DIALOGTERM);
/*
* FIXME : If the initial FindWhat string is empty, we should disable the FinNext /
* Replace / ReplaceAll buttons. Only after typing some text, the buttons should be
* enabled.
*/
if (fUnicode)
{
SetDlgItemTextW(hWnd, edt1, (LPCWSTR)lpstrFindWhat);
SetDlgItemTextW(hWnd, edt2, (LPCWSTR)lpstrReplaceWith);
} else
{
SetDlgItemTextA(hWnd, edt1, lpstrFindWhat);
SetDlgItemTextA(hWnd, edt2, lpstrReplaceWith);
}
CheckDlgButton(hWnd, chx1, (*lpFlags & FR_WHOLEWORD) ? 1 : 0);
if (*lpFlags & (FR_HIDEWHOLEWORD | FR_NOWHOLEWORD))
EnableWindow(GetDlgItem(hWnd, chx1), FALSE);
if (*lpFlags & FR_HIDEWHOLEWORD)
ShowWindow(GetDlgItem(hWnd, chx1), SW_HIDE);
CheckDlgButton(hWnd, chx2, (*lpFlags & FR_MATCHCASE) ? 1 : 0);
if (*lpFlags & (FR_HIDEMATCHCASE | FR_NOMATCHCASE))
EnableWindow(GetDlgItem(hWnd, chx2), FALSE);
if (*lpFlags & FR_HIDEMATCHCASE)
ShowWindow(GetDlgItem(hWnd, chx2), SW_HIDE);
if (!(*lpFlags & FR_SHOWHELP)) {
EnableWindow(GetDlgItem(hWnd, pshHelp), FALSE);
ShowWindow(GetDlgItem(hWnd, pshHelp), SW_HIDE);
}
ShowWindow(hWnd, SW_SHOWNORMAL);
return TRUE;
}
/***********************************************************************
* REPLACEDLG_WMCommand [internal]
*/
static LRESULT REPLACEDLG_WMCommand(HWND hWnd, WPARAM16 wParam,
HWND hwndOwner, LPDWORD lpFlags,
LPSTR lpstrFindWhat, WORD wFindWhatLen,
LPSTR lpstrReplaceWith, WORD wReplaceWithLen,
BOOL fUnicode)
{
int uFindReplaceMessage = RegisterWindowMessageA( FINDMSGSTRINGA );
int uHelpMessage = RegisterWindowMessageA( HELPMSGSTRINGA );
switch (wParam) {
case IDOK:
if (fUnicode)
{
GetDlgItemTextW(hWnd, edt1, (LPWSTR)lpstrFindWhat, wFindWhatLen/2);
GetDlgItemTextW(hWnd, edt2, (LPWSTR)lpstrReplaceWith, wReplaceWithLen/2);
} else
{
GetDlgItemTextA(hWnd, edt1, lpstrFindWhat, wFindWhatLen);
GetDlgItemTextA(hWnd, edt2, lpstrReplaceWith, wReplaceWithLen);
}
if (IsDlgButtonChecked(hWnd, chx1))
*lpFlags |= FR_WHOLEWORD;
else *lpFlags &= ~FR_WHOLEWORD;
if (IsDlgButtonChecked(hWnd, chx2))
*lpFlags |= FR_MATCHCASE;
else *lpFlags &= ~FR_MATCHCASE;
*lpFlags &= ~(FR_REPLACE | FR_REPLACEALL | FR_DIALOGTERM);
*lpFlags |= FR_FINDNEXT;
SendMessageW( hwndOwner, uFindReplaceMessage, 0,
GetWindowLongPtrW(hWnd, DWLP_USER) );
return TRUE;
case IDCANCEL:
*lpFlags &= ~(FR_FINDNEXT | FR_REPLACE | FR_REPLACEALL);
*lpFlags |= FR_DIALOGTERM;
SendMessageW( hwndOwner, uFindReplaceMessage, 0,
GetWindowLongPtrW(hWnd, DWLP_USER) );
DestroyWindow(hWnd);
return TRUE;
case psh1:
if (fUnicode)
{
GetDlgItemTextW(hWnd, edt1, (LPWSTR)lpstrFindWhat, wFindWhatLen/2);
GetDlgItemTextW(hWnd, edt2, (LPWSTR)lpstrReplaceWith, wReplaceWithLen/2);
} else
{
GetDlgItemTextA(hWnd, edt1, lpstrFindWhat, wFindWhatLen);
GetDlgItemTextA(hWnd, edt2, lpstrReplaceWith, wReplaceWithLen);
}
if (IsDlgButtonChecked(hWnd, chx1))
*lpFlags |= FR_WHOLEWORD;
else *lpFlags &= ~FR_WHOLEWORD;
if (IsDlgButtonChecked(hWnd, chx2))
*lpFlags |= FR_MATCHCASE;
else *lpFlags &= ~FR_MATCHCASE;
*lpFlags &= ~(FR_FINDNEXT | FR_REPLACEALL | FR_DIALOGTERM);
*lpFlags |= FR_REPLACE;
SendMessageW( hwndOwner, uFindReplaceMessage, 0,
GetWindowLongPtrW(hWnd, DWLP_USER) );
return TRUE;
case psh2:
if (fUnicode)
{
GetDlgItemTextW(hWnd, edt1, (LPWSTR)lpstrFindWhat, wFindWhatLen/2);
GetDlgItemTextW(hWnd, edt2, (LPWSTR)lpstrReplaceWith, wReplaceWithLen/2);
} else
{
GetDlgItemTextA(hWnd, edt1, lpstrFindWhat, wFindWhatLen);
GetDlgItemTextA(hWnd, edt2, lpstrReplaceWith, wReplaceWithLen);
}
if (IsDlgButtonChecked(hWnd, chx1))
*lpFlags |= FR_WHOLEWORD;
else *lpFlags &= ~FR_WHOLEWORD;
if (IsDlgButtonChecked(hWnd, chx2))
*lpFlags |= FR_MATCHCASE;
else *lpFlags &= ~FR_MATCHCASE;
*lpFlags &= ~(FR_FINDNEXT | FR_REPLACE | FR_DIALOGTERM);
*lpFlags |= FR_REPLACEALL;
SendMessageW( hwndOwner, uFindReplaceMessage, 0,
GetWindowLongPtrW(hWnd, DWLP_USER) );
return TRUE;
case pshHelp:
/* FIXME : should lpfr structure be passed as an argument ??? */
SendMessageA(hwndOwner, uHelpMessage, 0, 0);
return TRUE;
}
return FALSE;
}
/***********************************************************************
* ReplaceTextDlgProc (COMMDLG.14)
*/
BOOL16 CALLBACK ReplaceTextDlgProc16(HWND16 hWnd16, UINT16 wMsg, WPARAM16 wParam,
LPARAM lParam)
{
HWND hWnd = HWND_32(hWnd16);
LPFINDREPLACE16 lpfr;
switch (wMsg) {
case WM_INITDIALOG:
lpfr=MapSL(lParam);
return REPLACEDLG_WMInitDialog(hWnd, lParam, &lpfr->Flags,
MapSL(lpfr->lpstrFindWhat),
MapSL(lpfr->lpstrReplaceWith), FALSE);
case WM_COMMAND:
lpfr=MapSL(GetWindowLongPtrW(hWnd, DWLP_USER));
return REPLACEDLG_WMCommand(hWnd, wParam, HWND_32(lpfr->hwndOwner),
&lpfr->Flags, MapSL(lpfr->lpstrFindWhat),
lpfr->wFindWhatLen, MapSL(lpfr->lpstrReplaceWith),
lpfr->wReplaceWithLen, FALSE);
}
return FALSE;
}
+47 -39
View File
@@ -33,16 +33,24 @@
#include "dlgs.h"
#include "wine/debug.h"
#include "cderr.h"
#include "cdlg.h"
WINE_DEFAULT_DEBUG_CHANNEL(commdlg);
typedef struct
{
HWND hWnd1;
HWND hWnd2;
LPCHOOSEFONTW lpcf32w;
int added;
} CFn_ENUMSTRUCT, *LPCFn_ENUMSTRUCT;
static const WCHAR strWineFontData[] = {'_','_','W','I','N','E','_','F','O','N','T','D','L','G','D','A','T','A',0};
static const WCHAR strWineFontData_a[] =
{'_','_','W','I','N','E','_','F','O','N','T','D','L','G','D','A','T','A','_','A',0};
static const WCHAR chooseFontW[] = {'C','H','O','O','S','E','_','F','O','N','T',0};
#include "cdlg.h"
/* image list with TrueType bitmaps and more */
static HIMAGELIST himlTT = 0;
#define TTBITMAP_XSIZE 20 /* x-size of the bitmaps */
@@ -148,7 +156,7 @@ static const struct {
#undef XX
};
void _dump_cf_flags(DWORD cflags)
static void _dump_cf_flags(DWORD cflags)
{
unsigned int i;
@@ -299,8 +307,8 @@ static BOOL CFn_HookCallChk32(const CHOOSEFONTW *lpcf)
/*************************************************************************
* AddFontFamily [internal]
*/
INT AddFontFamily(const ENUMLOGFONTEXW *lpElfex, const NEWTEXTMETRICEXW *lpNTM,
UINT nFontType, const CHOOSEFONTW *lpcf, HWND hwnd, LPCFn_ENUMSTRUCT e)
static INT AddFontFamily(const ENUMLOGFONTEXW *lpElfex, const NEWTEXTMETRICEXW *lpNTM,
UINT nFontType, const CHOOSEFONTW *lpcf, HWND hwnd, LPCFn_ENUMSTRUCT e)
{
int i;
WORD w;
@@ -447,6 +455,21 @@ static inline HDC CFn_GetDC(const CHOOSEFONTW *lpcf)
return ret;
}
/*************************************************************************
* GetScreenDPI [internal]
*/
static inline int GetScreenDPI(void)
{
HDC hdc;
int result;
hdc = GetDC(0);
result = GetDeviceCaps(hdc, LOGPIXELSY);
ReleaseDC(0, hdc);
return result;
}
/*************************************************************************
* CFn_ReleaseDC [internal]
*/
@@ -459,9 +482,8 @@ static inline void CFn_ReleaseDC(const CHOOSEFONTW *lpcf, HDC hdc)
/***********************************************************************
* AddFontStyle [internal]
*/
INT AddFontStyle( const ENUMLOGFONTEXW *lpElfex, const NEWTEXTMETRICEXW *lpNTM,
UINT nFontType, const CHOOSEFONTW *lpcf, HWND hcmb2, HWND hcmb3,
HWND hDlg, BOOL iswin16)
static INT AddFontStyle( const ENUMLOGFONTEXW *lpElfex, const NEWTEXTMETRICEXW *lpNTM,
UINT nFontType, const CHOOSEFONTW *lpcf, HWND hcmb2, HWND hcmb3, HWND hDlg)
{
int i;
const LOGFONTW *lplf = &(lpElfex->elfLogFont);
@@ -479,10 +501,8 @@ INT AddFontStyle( const ENUMLOGFONTEXW *lpElfex, const NEWTEXTMETRICEXW *lpNTM,
if (nFontType & RASTER_FONTTYPE)
{
INT points;
if(!(hdc = CFn_GetDC(lpcf))) return 0;
points = MulDiv( lpNTM->ntmTm.tmHeight - lpNTM->ntmTm.tmInternalLeading,
72, GetDeviceCaps(hdc, LOGPIXELSY));
CFn_ReleaseDC(lpcf, hdc);
72, GetScreenDPI());
i = AddFontSizeToCombo3(hcmb3, points, lpcf);
if(i) return 0;
} else if (SetFontSizesToCombo3(hcmb3, lpcf)) return 0;
@@ -495,7 +515,7 @@ INT AddFontStyle( const ENUMLOGFONTEXW *lpElfex, const NEWTEXTMETRICEXW *lpNTM,
if (i)
return 0;
}
if( iswin16 || !( hcmb5 = GetDlgItem(hDlg, cmb5))) return 1;
if (!( hcmb5 = GetDlgItem(hDlg, cmb5))) return 1;
i = SendMessageW( hcmb5, CB_FINDSTRINGEXACT, 0,
(LPARAM)lpElfex->elfScript);
if( i == CB_ERR) {
@@ -584,14 +604,13 @@ static INT WINAPI FontStyleEnumProc( const ENUMLOGFONTEXW *lpElfex,
HWND hcmb3=s->hWnd2;
HWND hDlg=GetParent(hcmb3);
return AddFontStyle( lpElfex, (const NEWTEXTMETRICEXW *) metrics,
dwFontType, s->lpcf32w, hcmb2, hcmb3, hDlg, FALSE);
dwFontType, s->lpcf32w, hcmb2, hcmb3, hDlg);
}
/***********************************************************************
* CFn_WMInitDialog [internal]
*/
LRESULT CFn_WMInitDialog(HWND hDlg, WPARAM wParam, LPARAM lParam,
LPCHOOSEFONTW lpcf)
static LRESULT CFn_WMInitDialog(HWND hDlg, LPARAM lParam, LPCHOOSEFONTW lpcf)
{
HDC hdc;
int i,j,init=0;
@@ -699,7 +718,7 @@ LRESULT CFn_WMInitDialog(HWND hDlg, WPARAM wParam, LPARAM lParam,
lpxx->lfHeight;
INT points;
int charset = lpxx->lfCharSet;
points = MulDiv( height, 72, GetDeviceCaps(hdc, LOGPIXELSY));
points = MulDiv( height, 72, GetScreenDPI());
pstyle = MAKELONG(lpxx->lfWeight > FW_MEDIUM ? FW_BOLD:
FW_NORMAL,lpxx->lfItalic !=0);
SendDlgItemMessageW(hDlg, cmb1, CB_SETCURSEL, j, 0);
@@ -747,7 +766,7 @@ LRESULT CFn_WMInitDialog(HWND hDlg, WPARAM wParam, LPARAM lParam,
/***********************************************************************
* CFn_WMMeasureItem [internal]
*/
LRESULT CFn_WMMeasureItem(HWND hDlg, WPARAM wParam, LPARAM lParam)
static LRESULT CFn_WMMeasureItem(HWND hDlg, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
HFONT hfontprev;
@@ -775,7 +794,7 @@ LRESULT CFn_WMMeasureItem(HWND hDlg, WPARAM wParam, LPARAM lParam)
/***********************************************************************
* CFn_WMDrawItem [internal]
*/
LRESULT CFn_WMDrawItem(HWND hDlg, WPARAM wParam, LPARAM lParam)
static LRESULT CFn_WMDrawItem(HWND hDlg, WPARAM wParam, LPARAM lParam)
{
HBRUSH hBrush;
WCHAR buffer[40];
@@ -879,8 +898,7 @@ LRESULT CFn_WMDrawItem(HWND hDlg, WPARAM wParam, LPARAM lParam)
/***********************************************************************
* CFn_WMCommand [internal]
*/
LRESULT CFn_WMCommand(HWND hDlg, WPARAM wParam, LPARAM lParam,
LPCHOOSEFONTW lpcf)
static LRESULT CFn_WMCommand(HWND hDlg, WPARAM wParam, LPARAM lParam, LPCHOOSEFONTW lpcf)
{
int i;
long l;
@@ -977,14 +995,8 @@ LRESULT CFn_WMCommand(HWND hDlg, WPARAM wParam, LPARAM lParam,
CB_GETITEMDATA , i, 0));
else
lpcf->iPointSize = 100;
hdc = CFn_GetDC(lpcf);
if( hdc)
{
lpxx->lfHeight = - MulDiv( lpcf->iPointSize ,
GetDeviceCaps(hdc, LOGPIXELSY), 720);
CFn_ReleaseDC(lpcf, hdc);
} else
lpxx->lfHeight = -lpcf->iPointSize / 10;
lpxx->lfHeight = - MulDiv( lpcf->iPointSize ,
GetScreenDPI(), 720);
i=SendDlgItemMessageW(hDlg, cmb5, CB_GETCURSEL, 0, 0);
if (i!=CB_ERR)
lpxx->lfCharSet=SendDlgItemMessageW(hDlg, cmb5, CB_GETITEMDATA, i, 0);
@@ -1028,8 +1040,6 @@ LRESULT CFn_WMCommand(HWND hDlg, WPARAM wParam, LPARAM lParam,
i=RegisterWindowMessageW( HELPMSGSTRINGW );
if (lpcf->hwndOwner)
SendMessageW(lpcf->hwndOwner, i, 0, (LPARAM)GetPropW(hDlg, strWineFontData));
/* if (CFn_HookCallChk(lpcf))
CallWindowProc16(lpcf->lpfnHook,hDlg,WM_COMMAND,psh15,(LPARAM)lpcf);*/
break;
case IDOK:
@@ -1054,7 +1064,7 @@ LRESULT CFn_WMCommand(HWND hDlg, WPARAM wParam, LPARAM lParam,
return(FALSE);
}
static LRESULT CFn_WMDestroy(HWND hwnd, WPARAM wParam, LPARAM lParam, LPCHOOSEFONTW lpcfw)
static LRESULT CFn_WMDestroy(HWND hwnd, LPCHOOSEFONTW lpcfw)
{
LPCHOOSEFONTA lpcfa;
LPSTR lpszStyle;
@@ -1084,7 +1094,7 @@ static LRESULT CFn_WMDestroy(HWND hwnd, WPARAM wParam, LPARAM lParam, LPCHOOSEFO
return TRUE;
}
LRESULT CFn_WMPaint(HWND hDlg, WPARAM wParam, LPARAM lParam, const CHOOSEFONTW *lpcf)
static LRESULT CFn_WMPaint(HWND hDlg, WPARAM wParam, LPARAM lParam, const CHOOSEFONTW *lpcf)
{
WINDOWINFO info;
@@ -1137,8 +1147,7 @@ LRESULT CFn_WMPaint(HWND hDlg, WPARAM wParam, LPARAM lParam, const CHOOSEFONTW *
/***********************************************************************
* FormatCharDlgProcA [internal]
*/
INT_PTR CALLBACK FormatCharDlgProcA(HWND hDlg, UINT uMsg, WPARAM wParam,
LPARAM lParam)
static INT_PTR CALLBACK FormatCharDlgProcA(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
LPCHOOSEFONTW lpcfw;
LPCHOOSEFONTA lpcfa;
@@ -1170,7 +1179,7 @@ INT_PTR CALLBACK FormatCharDlgProcA(HWND hDlg, UINT uMsg, WPARAM wParam,
MultiByteToWideChar(CP_ACP, 0, lpcfa->lpszStyle, -1, lpcfw->lpszStyle, len);
}
if (!CFn_WMInitDialog(hDlg, wParam, lParam, lpcfw))
if (!CFn_WMInitDialog(hDlg, lParam, lpcfw))
{
TRACE("CFn_WMInitDialog returned FALSE\n");
return FALSE;
@@ -1187,7 +1196,7 @@ INT_PTR CALLBACK FormatCharDlgProcA(HWND hDlg, UINT uMsg, WPARAM wParam,
case WM_COMMAND:
return CFn_WMCommand(hDlg, wParam, lParam, lpcfw);
case WM_DESTROY:
return CFn_WMDestroy(hDlg, wParam, lParam, lpcfw);
return CFn_WMDestroy(hDlg, lpcfw);
case WM_CHOOSEFONT_GETLOGFONT:
TRACE("WM_CHOOSEFONT_GETLOGFONT lParam=%08lX\n", lParam);
FIXME("current logfont back to caller\n");
@@ -1201,8 +1210,7 @@ INT_PTR CALLBACK FormatCharDlgProcA(HWND hDlg, UINT uMsg, WPARAM wParam,
/***********************************************************************
* FormatCharDlgProcW [internal]
*/
INT_PTR CALLBACK FormatCharDlgProcW(HWND hDlg, UINT uMsg, WPARAM wParam,
LPARAM lParam)
static INT_PTR CALLBACK FormatCharDlgProcW(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
LPCHOOSEFONTW lpcf;
INT_PTR res = FALSE;
@@ -1220,7 +1228,7 @@ INT_PTR CALLBACK FormatCharDlgProcW(HWND hDlg, UINT uMsg, WPARAM wParam,
else
{
lpcf=(LPCHOOSEFONTW)lParam;
if (!CFn_WMInitDialog(hDlg, wParam, lParam, lpcf))
if (!CFn_WMInitDialog(hDlg, lParam, lpcf))
{
TRACE("CFn_WMInitDialog returned FALSE\n");
return FALSE;
-380
View File
@@ -1,380 +0,0 @@
/*
* COMMDLG - Font Dialog
*
* Copyright 1994 Martin Ayotte
* Copyright 1996 Albrecht Kleine
*
* 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 <ctype.h>
#include <stdlib.h>
#include <stdarg.h>
#include <stdio.h>
#include <string.h>
#include "windef.h"
#include "winbase.h"
#include "wingdi.h"
#include "winuser.h"
#include "winnls.h"
#include "wine/winbase16.h"
#include "wine/winuser16.h"
#include "commdlg.h"
#include "wine/debug.h"
#include "cderr.h"
WINE_DEFAULT_DEBUG_CHANNEL(commdlg);
#include "cdlg.h"
#include "cdlg16.h"
static const WCHAR strWineFontData16[] =
{'_','_','W','I','N','E','_','F','O','N','T','D','L','G','D','A','T','A','1','6',0};
static void FONT_LogFont16To32W( const LOGFONT16 *font16, LPLOGFONTW font32 )
{
font32->lfHeight = font16->lfHeight;
font32->lfWidth = font16->lfWidth;
font32->lfEscapement = font16->lfEscapement;
font32->lfOrientation = font16->lfOrientation;
font32->lfWeight = font16->lfWeight;
font32->lfItalic = font16->lfItalic;
font32->lfUnderline = font16->lfUnderline;
font32->lfStrikeOut = font16->lfStrikeOut;
font32->lfCharSet = font16->lfCharSet;
font32->lfOutPrecision = font16->lfOutPrecision;
font32->lfClipPrecision = font16->lfClipPrecision;
font32->lfQuality = font16->lfQuality;
font32->lfPitchAndFamily = font16->lfPitchAndFamily;
MultiByteToWideChar(CP_ACP, 0, font16->lfFaceName,
LF_FACESIZE, font32->lfFaceName, LF_FACESIZE);
}
static void FONT_Metrics16To32W( const TEXTMETRIC16 *pm16,
NEWTEXTMETRICEXW *pnm32w)
{
ZeroMemory( pnm32w, sizeof(NEWTEXTMETRICEXW));
/* NOTE: only the fields used by AddFontStyle() are filled in */
pnm32w->ntmTm.tmHeight = pm16->tmHeight;
pnm32w->ntmTm.tmExternalLeading = pm16->tmExternalLeading;
}
static void CFn_CHOOSEFONT16to32W(const CHOOSEFONT16 *chf16, LPCHOOSEFONTW chf32w)
{
int len;
if (chf16->Flags & CF_ENABLETEMPLATE)
{
LPWSTR name32w;
len = MultiByteToWideChar( CP_ACP, 0, MapSL(chf16->lpTemplateName), -1, NULL, 0);
name32w = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
MultiByteToWideChar( CP_ACP, 0, MapSL(chf16->lpTemplateName), -1, name32w, len);
chf32w->lpTemplateName = name32w;
}
if (chf16->Flags & CF_USESTYLE)
{
len = MultiByteToWideChar( CP_ACP, 0, MapSL(chf16->lpszStyle), -1, NULL, 0);
chf32w->lpszStyle = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
MultiByteToWideChar( CP_ACP, 0, MapSL(chf16->lpszStyle), -1, chf32w->lpszStyle, len);
}
chf32w->lStructSize=sizeof(CHOOSEFONTW);
chf32w->hwndOwner=HWND_32(chf16->hwndOwner);
chf32w->hDC=HDC_32(chf16->hDC);
chf32w->iPointSize=chf16->iPointSize;
chf32w->Flags=chf16->Flags;
chf32w->rgbColors=chf16->rgbColors;
chf32w->lCustData=chf16->lCustData;
chf32w->lpfnHook=NULL;
chf32w->hInstance=HINSTANCE_32(chf16->hInstance);
chf32w->nFontType=chf16->nFontType;
chf32w->nSizeMax=chf16->nSizeMax;
chf32w->nSizeMin=chf16->nSizeMin;
FONT_LogFont16To32W(MapSL(chf16->lpLogFont), chf32w->lpLogFont);
}
/***********************************************************************
* CFn_HookCallChk [internal]
*/
static BOOL CFn_HookCallChk(const CHOOSEFONT16 *lpcf)
{
if (lpcf)
if(lpcf->Flags & CF_ENABLEHOOK)
if (lpcf->lpfnHook)
return TRUE;
return FALSE;
}
/***********************************************************************
* FontFamilyEnumProc (COMMDLG.19)
*/
INT16 WINAPI FontFamilyEnumProc16( SEGPTR logfont, SEGPTR metrics,
UINT16 nFontType, LPARAM lParam )
{
HWND hwnd=HWND_32(LOWORD(lParam));
HWND hDlg=GetParent(hwnd);
LPCHOOSEFONT16 lpcf;
LOGFONT16 *lplf = MapSL( logfont );
TEXTMETRIC16 *lpmtrx16 = MapSL(metrics);
ENUMLOGFONTEXW elf32w;
NEWTEXTMETRICEXW nmtrx32w;
lpcf = (LPCHOOSEFONT16)GetPropW(hDlg, strWineFontData16);
FONT_LogFont16To32W(lplf, &(elf32w.elfLogFont));
FONT_Metrics16To32W(lpmtrx16, &nmtrx32w);
return AddFontFamily(&elf32w, &nmtrx32w, nFontType,
(LPCHOOSEFONTW)lpcf->lpTemplateName, hwnd,NULL);
}
/***********************************************************************
* FontStyleEnumProc (COMMDLG.18)
*/
INT16 WINAPI FontStyleEnumProc16( SEGPTR logfont, SEGPTR metrics,
UINT16 nFontType, LPARAM lParam )
{
HWND hcmb2=HWND_32(LOWORD(lParam));
HWND hcmb3=HWND_32(HIWORD(lParam));
HWND hDlg=GetParent(hcmb3);
LPCHOOSEFONT16 lpcf;
LOGFONT16 *lplf = MapSL(logfont);
TEXTMETRIC16 *lpmtrx16 = MapSL(metrics);
ENUMLOGFONTEXW elf32w;
NEWTEXTMETRICEXW nmtrx32w;
lpcf = (LPCHOOSEFONT16)GetPropW(hDlg, strWineFontData16);
FONT_LogFont16To32W(lplf, &(elf32w.elfLogFont));
FONT_Metrics16To32W(lpmtrx16, &nmtrx32w);
return AddFontStyle(&elf32w, &nmtrx32w, nFontType,
(LPCHOOSEFONTW)lpcf->lpTemplateName, hcmb2, hcmb3, hDlg, TRUE);
}
/***********************************************************************
* ChooseFont (COMMDLG.15)
*/
BOOL16 WINAPI ChooseFont16(LPCHOOSEFONT16 lpChFont)
{
HINSTANCE16 hInst;
HANDLE16 hDlgTmpl16 = 0;
HGLOBAL16 hGlobal16 = 0;
BOOL16 bRet = FALSE;
LPVOID template;
FARPROC16 ptr;
CHOOSEFONTW cf32w;
LOGFONTW lf32w;
LOGFONT16 *font16;
SEGPTR lpTemplateName;
TRACE("ChooseFont\n");
if (!lpChFont) return FALSE;
cf32w.lpLogFont=&lf32w;
CFn_CHOOSEFONT16to32W(lpChFont, &cf32w);
if (TRACE_ON(commdlg))
_dump_cf_flags(lpChFont->Flags);
if (lpChFont->Flags & CF_ENABLETEMPLATEHANDLE)
{
if (!LockResource16( lpChFont->hInstance ))
{
COMDLG32_SetCommDlgExtendedError(CDERR_LOADRESFAILURE);
return FALSE;
}
}
else if (lpChFont->Flags & CF_ENABLETEMPLATE)
{
HANDLE16 hResInfo;
if (!(hResInfo = FindResource16( lpChFont->hInstance,
MapSL(lpChFont->lpTemplateName),
(LPSTR)RT_DIALOG)))
{
COMDLG32_SetCommDlgExtendedError(CDERR_FINDRESFAILURE);
return FALSE;
}
if (!(hDlgTmpl16 = LoadResource16( lpChFont->hInstance, hResInfo )) ||
!LockResource16( hDlgTmpl16 ))
{
COMDLG32_SetCommDlgExtendedError(CDERR_LOADRESFAILURE);
return FALSE;
}
}
else
{
HRSRC hResInfo;
HGLOBAL hDlgTmpl32;
LPCVOID template32;
DWORD size;
if (!(hResInfo = FindResourceA(COMDLG32_hInstance, "CHOOSE_FONT", (LPSTR)RT_DIALOG)))
{
COMDLG32_SetCommDlgExtendedError(CDERR_FINDRESFAILURE);
return FALSE;
}
if (!(hDlgTmpl32 = LoadResource(COMDLG32_hInstance, hResInfo)) ||
!(template32 = LockResource(hDlgTmpl32)))
{
COMDLG32_SetCommDlgExtendedError(CDERR_LOADRESFAILURE);
return FALSE;
}
size = SizeofResource(COMDLG32_hInstance, hResInfo);
hGlobal16 = GlobalAlloc16(0, size);
if (!hGlobal16)
{
COMDLG32_SetCommDlgExtendedError(CDERR_MEMALLOCFAILURE);
ERR("alloc failure for %d bytes\n", size);
return FALSE;
}
template = GlobalLock16(hGlobal16);
if (!template)
{
COMDLG32_SetCommDlgExtendedError(CDERR_MEMLOCKFAILURE);
ERR("global lock failure for %x handle\n", hGlobal16);
GlobalFree16(hGlobal16);
return FALSE;
}
ConvertDialog32To16(template32, size, template);
hDlgTmpl16 = hGlobal16;
}
/* lpTemplateName is not used in the dialog */
lpTemplateName=lpChFont->lpTemplateName;
lpChFont->lpTemplateName=(SEGPTR)&cf32w;
ptr = GetProcAddress16(GetModuleHandle16("COMMDLG"), (LPCSTR) 16);
hInst = GetWindowLongPtrA(HWND_32(lpChFont->hwndOwner), GWLP_HINSTANCE);
bRet = DialogBoxIndirectParam16(hInst, hDlgTmpl16, lpChFont->hwndOwner,
(DLGPROC16) ptr, (DWORD)lpChFont);
if (hGlobal16)
{
GlobalUnlock16(hGlobal16);
GlobalFree16(hGlobal16);
}
lpChFont->lpTemplateName=lpTemplateName;
lpChFont->iPointSize = cf32w.iPointSize;
lpChFont->Flags = cf32w.Flags;
lpChFont->rgbColors = cf32w.rgbColors;
lpChFont->lCustData = cf32w.lCustData;
lpChFont->nFontType = cf32w.nFontType;
font16 = MapSL(lpChFont->lpLogFont);
font16->lfHeight = cf32w.lpLogFont->lfHeight;
font16->lfWidth = cf32w.lpLogFont->lfWidth;
font16->lfEscapement = cf32w.lpLogFont->lfEscapement;
font16->lfOrientation = cf32w.lpLogFont->lfOrientation;
font16->lfWeight = cf32w.lpLogFont->lfWeight;
font16->lfItalic = cf32w.lpLogFont->lfItalic;
font16->lfUnderline = cf32w.lpLogFont->lfUnderline;
font16->lfStrikeOut = cf32w.lpLogFont->lfStrikeOut;
font16->lfCharSet = cf32w.lpLogFont->lfCharSet;
font16->lfOutPrecision = cf32w.lpLogFont->lfOutPrecision;
font16->lfClipPrecision = cf32w.lpLogFont->lfClipPrecision;
font16->lfQuality = cf32w.lpLogFont->lfQuality;
font16->lfPitchAndFamily = cf32w.lpLogFont->lfPitchAndFamily;
WideCharToMultiByte(CP_ACP, 0, cf32w.lpLogFont->lfFaceName,
LF_FACESIZE, font16->lfFaceName, LF_FACESIZE, 0, 0);
HeapFree(GetProcessHeap(), 0, (LPBYTE)cf32w.lpTemplateName);
HeapFree(GetProcessHeap(), 0, cf32w.lpszStyle);
return bRet;
}
/***********************************************************************
* FormatCharDlgProc (COMMDLG.16)
FIXME: 1. some strings are "hardcoded", but it's better load from sysres
2. some CF_.. flags are not supported
3. some TType extensions
*/
BOOL16 CALLBACK FormatCharDlgProc16(HWND16 hDlg16, UINT16 message,
WPARAM16 wParam, LPARAM lParam)
{
HWND hDlg = HWND_32(hDlg16);
LPCHOOSEFONT16 lpcf;
BOOL16 res=0;
if (message!=WM_INITDIALOG)
{
lpcf = (LPCHOOSEFONT16)GetPropW(hDlg, strWineFontData16);
if (!lpcf)
return FALSE;
if (CFn_HookCallChk(lpcf))
res=CallWindowProc16((WNDPROC16)lpcf->lpfnHook,hDlg16,message,wParam,lParam);
if (res)
return res;
}
else
{
lpcf=(LPCHOOSEFONT16)lParam;
if (!CFn_WMInitDialog(hDlg, wParam, lParam, (LPCHOOSEFONTW)lpcf->lpTemplateName))
{
TRACE("CFn_WMInitDialog returned FALSE\n");
return FALSE;
}
SetPropW(hDlg, strWineFontData16, (HANDLE)lParam);
if (CFn_HookCallChk(lpcf))
return CallWindowProc16((WNDPROC16)lpcf->lpfnHook,hDlg16,WM_INITDIALOG,wParam,lParam);
}
switch (message)
{
case WM_MEASUREITEM:
{
MEASUREITEMSTRUCT16* mis16 = MapSL(lParam);
MEASUREITEMSTRUCT mis;
mis.CtlType = mis16->CtlType;
mis.CtlID = mis16->CtlID;
mis.itemID = mis16->itemID;
mis.itemWidth = mis16->itemWidth;
mis.itemHeight = mis16->itemHeight;
mis.itemData = mis16->itemData;
res = CFn_WMMeasureItem(hDlg, wParam, (LPARAM)&mis);
mis16->itemWidth = (UINT16)mis.itemWidth;
mis16->itemHeight = (UINT16)mis.itemHeight;
}
break;
case WM_DRAWITEM:
{
DRAWITEMSTRUCT16* dis16 = MapSL(lParam);
DRAWITEMSTRUCT dis;
dis.CtlType = dis16->CtlType;
dis.CtlID = dis16->CtlID;
dis.itemID = dis16->itemID;
dis.itemAction = dis16->itemAction;
dis.itemState = dis16->itemState;
dis.hwndItem = HWND_32(dis16->hwndItem);
dis.hDC = HDC_32(dis16->hDC);
dis.itemData = dis16->itemData;
dis.rcItem.left = dis16->rcItem.left;
dis.rcItem.top = dis16->rcItem.top;
dis.rcItem.right = dis16->rcItem.right;
dis.rcItem.bottom = dis16->rcItem.bottom;
res = CFn_WMDrawItem(hDlg, wParam, (LPARAM)&dis);
}
break;
case WM_COMMAND:
res=CFn_WMCommand(hDlg, MAKEWPARAM( wParam, HIWORD(lParam) ), LOWORD(lParam),
(LPCHOOSEFONTW)lpcf->lpTemplateName);
break;
case WM_DESTROY:
return TRUE;
case WM_CHOOSEFONT_GETLOGFONT:
TRACE("WM_CHOOSEFONT_GETLOGFONT lParam=%08lX\n", lParam);
FIXME("current logfont back to caller\n");
break;
case WM_PAINT:
res= CFn_WMPaint(hDlg, wParam, lParam, (LPCHOOSEFONTW)lpcf->lpTemplateName);
break;
}
return res;
}
+100 -71
View File
@@ -42,19 +42,53 @@
#include "commdlg.h"
#include "dlgs.h"
#include "cderr.h"
#include "cdlg.h"
WINE_DEFAULT_DEBUG_CHANNEL(commdlg);
#include "cdlg.h"
#include "printdlg.h"
/* Yes these constants are the same, but we're just copying win98 */
#define UPDOWN_ID 0x270f
#define MAX_COPIES 9999
DEVMODEW* WINAPI GdiConvertToDevmodeW(const DEVMODEA*);
/* This PRINTDLGA internal structure stores
* pointers to several throughout useful structures.
*/
typedef struct
{
LPDEVMODEA lpDevMode;
LPPRINTDLGA lpPrintDlg;
LPPRINTER_INFO_2A lpPrinterInfo;
LPDRIVER_INFO_3A lpDriverInfo;
UINT HelpMessageID;
HICON hCollateIcon; /* PrintDlg only */
HICON hNoCollateIcon; /* PrintDlg only */
HICON hPortraitIcon; /* PrintSetupDlg only */
HICON hLandscapeIcon; /* PrintSetupDlg only */
HWND hwndUpDown;
} PRINT_PTRA;
typedef struct
{
LPDEVMODEW lpDevMode;
LPPRINTDLGW lpPrintDlg;
LPPRINTER_INFO_2W lpPrinterInfo;
LPDRIVER_INFO_3W lpDriverInfo;
UINT HelpMessageID;
HICON hCollateIcon; /* PrintDlg only */
HICON hNoCollateIcon; /* PrintDlg only */
HICON hPortraitIcon; /* PrintSetupDlg only */
HICON hLandscapeIcon; /* PrintSetupDlg only */
HWND hwndUpDown;
} PRINT_PTRW;
/* Debugging info */
struct pd_flags
{
DWORD flag;
LPCSTR name;
};
static const struct pd_flags psd_flags[] = {
{PSD_MINMARGINS,"PSD_MINMARGINS"},
{PSD_MARGINS,"PSD_MARGINS"},
@@ -75,6 +109,31 @@ static const struct pd_flags psd_flags[] = {
{-1, NULL}
};
static const struct pd_flags pd_flags[] = {
{PD_SELECTION, "PD_SELECTION "},
{PD_PAGENUMS, "PD_PAGENUMS "},
{PD_NOSELECTION, "PD_NOSELECTION "},
{PD_NOPAGENUMS, "PD_NOPAGENUMS "},
{PD_COLLATE, "PD_COLLATE "},
{PD_PRINTTOFILE, "PD_PRINTTOFILE "},
{PD_PRINTSETUP, "PD_PRINTSETUP "},
{PD_NOWARNING, "PD_NOWARNING "},
{PD_RETURNDC, "PD_RETURNDC "},
{PD_RETURNIC, "PD_RETURNIC "},
{PD_RETURNDEFAULT, "PD_RETURNDEFAULT "},
{PD_SHOWHELP, "PD_SHOWHELP "},
{PD_ENABLEPRINTHOOK, "PD_ENABLEPRINTHOOK "},
{PD_ENABLESETUPHOOK, "PD_ENABLESETUPHOOK "},
{PD_ENABLEPRINTTEMPLATE, "PD_ENABLEPRINTTEMPLATE "},
{PD_ENABLESETUPTEMPLATE, "PD_ENABLESETUPTEMPLATE "},
{PD_ENABLEPRINTTEMPLATEHANDLE, "PD_ENABLEPRINTTEMPLATEHANDLE "},
{PD_ENABLESETUPTEMPLATEHANDLE, "PD_ENABLESETUPTEMPLATEHANDLE "},
{PD_USEDEVMODECOPIES, "PD_USEDEVMODECOPIES[ANDCOLLATE] "},
{PD_DISABLEPRINTTOFILE, "PD_DISABLEPRINTTOFILE "},
{PD_HIDEPRINTTOFILE, "PD_HIDEPRINTTOFILE "},
{PD_NONETWORKBUTTON, "PD_NONETWORKBUTTON "},
{-1, NULL}
};
/* address of wndproc for subclassed Static control */
static WNDPROC lpfnStaticWndProc;
static WNDPROC edit_wndproc;
@@ -149,7 +208,7 @@ static DEVMODEA *convert_to_devmodeA(const DEVMODEW *dmW)
*
* Returns TRUE on success else FALSE
*/
BOOL PRINTDLG_OpenDefaultPrinter(HANDLE *hprn)
static BOOL PRINTDLG_OpenDefaultPrinter(HANDLE *hprn)
{
WCHAR buf[260];
DWORD dwBufLen = sizeof(buf) / sizeof(buf[0]);
@@ -175,7 +234,7 @@ BOOL PRINTDLG_OpenDefaultPrinter(HANDLE *hprn)
*
* Returns number of printers added to list.
*/
INT PRINTDLG_SetUpPrinterListComboA(HWND hDlg, UINT id, LPCSTR name)
static INT PRINTDLG_SetUpPrinterListComboA(HWND hDlg, UINT id, LPCSTR name)
{
DWORD needed, num;
INT i;
@@ -839,8 +898,7 @@ static void PRINTDLG_UpdatePrinterInfoTextsW(HWND hDlg, const PRINTER_INFO_2W *p
* PRINTDLG_ChangePrinter
*
*/
BOOL PRINTDLG_ChangePrinterA(HWND hDlg, char *name,
PRINT_PTRA *PrintStructures)
static BOOL PRINTDLG_ChangePrinterA(HWND hDlg, char *name, PRINT_PTRA *PrintStructures)
{
LPPRINTDLGA lppd = PrintStructures->lpPrintDlg;
LPDEVMODEA lpdm = NULL;
@@ -921,11 +979,11 @@ BOOL PRINTDLG_ChangePrinterA(HWND hDlg, char *name,
* FIXME: The ico3 is not displayed for some reason. I don't know why.
*/
if (lppd->Flags & PD_COLLATE) {
SendDlgItemMessageA(hDlg, ico3, STM_SETIMAGE, (WPARAM) IMAGE_ICON,
SendDlgItemMessageA(hDlg, ico3, STM_SETIMAGE, IMAGE_ICON,
(LPARAM)PrintStructures->hCollateIcon);
CheckDlgButton(hDlg, chx2, 1);
} else {
SendDlgItemMessageA(hDlg, ico3, STM_SETIMAGE, (WPARAM) IMAGE_ICON,
SendDlgItemMessageA(hDlg, ico3, STM_SETIMAGE, IMAGE_ICON,
(LPARAM)PrintStructures->hNoCollateIcon);
CheckDlgButton(hDlg, chx2, 0);
}
@@ -1032,7 +1090,7 @@ BOOL PRINTDLG_ChangePrinterA(HWND hDlg, char *name,
PrintStructures->lpPrinterInfo->pPortName,
lpdm);
CheckRadioButton(hDlg, rad1, rad2, bPortrait ? rad1: rad2);
SendDlgItemMessageA(hDlg, ico1, STM_SETIMAGE, (WPARAM) IMAGE_ICON,
SendDlgItemMessageA(hDlg, ico1, STM_SETIMAGE, IMAGE_ICON,
(LPARAM)(bPortrait ? PrintStructures->hPortraitIcon :
PrintStructures->hLandscapeIcon));
@@ -1128,11 +1186,11 @@ static BOOL PRINTDLG_ChangePrinterW(HWND hDlg, WCHAR *name,
* FIXME: The ico3 is not displayed for some reason. I don't know why.
*/
if (lppd->Flags & PD_COLLATE) {
SendDlgItemMessageW(hDlg, ico3, STM_SETIMAGE, (WPARAM) IMAGE_ICON,
SendDlgItemMessageW(hDlg, ico3, STM_SETIMAGE, IMAGE_ICON,
(LPARAM)PrintStructures->hCollateIcon);
CheckDlgButton(hDlg, chx2, 1);
} else {
SendDlgItemMessageW(hDlg, ico3, STM_SETIMAGE, (WPARAM) IMAGE_ICON,
SendDlgItemMessageW(hDlg, ico3, STM_SETIMAGE, IMAGE_ICON,
(LPARAM)PrintStructures->hNoCollateIcon);
CheckDlgButton(hDlg, chx2, 0);
}
@@ -1184,7 +1242,7 @@ static BOOL PRINTDLG_ChangePrinterW(HWND hDlg, WCHAR *name,
PrintStructures->lpPrinterInfo->pPortName,
lpdm);
CheckRadioButton(hDlg, rad1, rad2, bPortrait ? rad1: rad2);
SendDlgItemMessageW(hDlg, ico1, STM_SETIMAGE, (WPARAM) IMAGE_ICON,
SendDlgItemMessageW(hDlg, ico1, STM_SETIMAGE, IMAGE_ICON,
(LPARAM)(bPortrait ? PrintStructures->hPortraitIcon :
PrintStructures->hLandscapeIcon));
@@ -1225,7 +1283,7 @@ static LRESULT check_printer_setup(HWND hDlg)
/***********************************************************************
* PRINTDLG_WMInitDialog [internal]
*/
static LRESULT PRINTDLG_WMInitDialog(HWND hDlg, WPARAM wParam,
static LRESULT PRINTDLG_WMInitDialog(HWND hDlg,
PRINT_PTRA* PrintStructures)
{
LPPRINTDLGA lppd = PrintStructures->lpPrintDlg;
@@ -1249,7 +1307,7 @@ static LRESULT PRINTDLG_WMInitDialog(HWND hDlg, WPARAM wParam,
LoadIconA(COMDLG32_hInstance, "PD32_LANDSCAPE");
/* display the collate/no_collate icon */
SendDlgItemMessageA(hDlg, ico3, STM_SETIMAGE, (WPARAM) IMAGE_ICON,
SendDlgItemMessageA(hDlg, ico3, STM_SETIMAGE, IMAGE_ICON,
(LPARAM)PrintStructures->hNoCollateIcon);
if(PrintStructures->hCollateIcon == 0 ||
@@ -1333,7 +1391,7 @@ static LRESULT PRINTDLG_WMInitDialog(HWND hDlg, WPARAM wParam,
return TRUE;
}
static LRESULT PRINTDLG_WMInitDialogW(HWND hDlg, WPARAM wParam,
static LRESULT PRINTDLG_WMInitDialogW(HWND hDlg,
PRINT_PTRW* PrintStructures)
{
LPPRINTDLGW lppd = PrintStructures->lpPrintDlg;
@@ -1357,7 +1415,7 @@ static LRESULT PRINTDLG_WMInitDialogW(HWND hDlg, WPARAM wParam,
LoadIconW(COMDLG32_hInstance, pd32_landscapeW);
/* display the collate/no_collate icon */
SendDlgItemMessageW(hDlg, ico3, STM_SETIMAGE, (WPARAM) IMAGE_ICON,
SendDlgItemMessageW(hDlg, ico3, STM_SETIMAGE, IMAGE_ICON,
(LPARAM)PrintStructures->hNoCollateIcon);
if(PrintStructures->hCollateIcon == 0 ||
@@ -1445,8 +1503,8 @@ static LRESULT PRINTDLG_WMInitDialogW(HWND hDlg, WPARAM wParam,
/***********************************************************************
* PRINTDLG_WMCommand [internal]
*/
LRESULT PRINTDLG_WMCommandA(HWND hDlg, WPARAM wParam,
LPARAM lParam, PRINT_PTRA* PrintStructures)
static LRESULT PRINTDLG_WMCommandA(HWND hDlg, WPARAM wParam,
LPARAM lParam, PRINT_PTRA* PrintStructures)
{
LPPRINTDLGA lppd = PrintStructures->lpPrintDlg;
UINT PrinterComboID = (lppd->Flags & PD_PRINTSETUP) ? cmb1 : cmb4;
@@ -1475,10 +1533,10 @@ LRESULT PRINTDLG_WMCommandA(HWND hDlg, WPARAM wParam,
case chx2: /* collate pages checkbox */
if (IsDlgButtonChecked(hDlg, chx2) == BST_CHECKED)
SendDlgItemMessageA(hDlg, ico3, STM_SETIMAGE, (WPARAM) IMAGE_ICON,
SendDlgItemMessageA(hDlg, ico3, STM_SETIMAGE, IMAGE_ICON,
(LPARAM)PrintStructures->hCollateIcon);
else
SendDlgItemMessageA(hDlg, ico3, STM_SETIMAGE, (WPARAM) IMAGE_ICON,
SendDlgItemMessageA(hDlg, ico3, STM_SETIMAGE, IMAGE_ICON,
(LPARAM)PrintStructures->hNoCollateIcon);
break;
case edt1: /* from page nr editbox */
@@ -1503,24 +1561,6 @@ LRESULT PRINTDLG_WMCommandA(HWND hDlg, WPARAM wParam,
}
break;
#if 0
case psh1: /* Print Setup */
{
PRINTDLG16 pdlg;
if (!PrintStructures->dlg.lpPrintDlg16) {
FIXME("The 32bit print dialog does not have this button!?\n");
break;
}
memcpy(&pdlg,PrintStructures->dlg.lpPrintDlg16,sizeof(pdlg));
pdlg.Flags |= PD_PRINTSETUP;
pdlg.hwndOwner = HWND_16(hDlg);
if (!PrintDlg16(&pdlg))
break;
}
break;
#endif
case psh2: /* Properties button */
{
HANDLE hPrinter;
@@ -1543,7 +1583,7 @@ LRESULT PRINTDLG_WMCommandA(HWND hDlg, WPARAM wParam,
if (lppd->Flags & PD_PRINTSETUP)
{
lpdm->u1.s1.dmOrientation = DMORIENT_PORTRAIT;
SendDlgItemMessageA(hDlg, ico1, STM_SETIMAGE, (WPARAM) IMAGE_ICON,
SendDlgItemMessageA(hDlg, ico1, STM_SETIMAGE, IMAGE_ICON,
(LPARAM)(PrintStructures->hPortraitIcon));
}
break;
@@ -1552,7 +1592,7 @@ LRESULT PRINTDLG_WMCommandA(HWND hDlg, WPARAM wParam,
if (lppd->Flags & PD_PRINTSETUP)
{
lpdm->u1.s1.dmOrientation = DMORIENT_LANDSCAPE;
SendDlgItemMessageA(hDlg, ico1, STM_SETIMAGE, (WPARAM) IMAGE_ICON,
SendDlgItemMessageA(hDlg, ico1, STM_SETIMAGE, IMAGE_ICON,
(LPARAM)(PrintStructures->hLandscapeIcon));
}
break;
@@ -1597,21 +1637,17 @@ LRESULT PRINTDLG_WMCommandA(HWND hDlg, WPARAM wParam,
if (IsDlgButtonChecked(hDlg, rad1) == BST_CHECKED) {
if(lpdm->u1.s1.dmOrientation != DMORIENT_PORTRAIT) {
lpdm->u1.s1.dmOrientation = DMORIENT_PORTRAIT;
SendDlgItemMessageA(hDlg, stc10, STM_SETIMAGE,
(WPARAM)IMAGE_ICON,
SendDlgItemMessageA(hDlg, stc10, STM_SETIMAGE, IMAGE_ICON,
(LPARAM)PrintStructures->hPortraitIcon);
SendDlgItemMessageA(hDlg, ico1, STM_SETIMAGE,
(WPARAM)IMAGE_ICON,
SendDlgItemMessageA(hDlg, ico1, STM_SETIMAGE, IMAGE_ICON,
(LPARAM)PrintStructures->hPortraitIcon);
}
} else {
if(lpdm->u1.s1.dmOrientation != DMORIENT_LANDSCAPE) {
lpdm->u1.s1.dmOrientation = DMORIENT_LANDSCAPE;
SendDlgItemMessageA(hDlg, stc10, STM_SETIMAGE,
(WPARAM)IMAGE_ICON,
SendDlgItemMessageA(hDlg, stc10, STM_SETIMAGE, IMAGE_ICON,
(LPARAM)PrintStructures->hLandscapeIcon);
SendDlgItemMessageA(hDlg, ico1, STM_SETIMAGE,
(WPARAM)IMAGE_ICON,
SendDlgItemMessageA(hDlg, ico1, STM_SETIMAGE, IMAGE_ICON,
(LPARAM)PrintStructures->hLandscapeIcon);
}
}
@@ -1651,10 +1687,10 @@ static LRESULT PRINTDLG_WMCommandW(HWND hDlg, WPARAM wParam,
case chx2: /* collate pages checkbox */
if (IsDlgButtonChecked(hDlg, chx2) == BST_CHECKED)
SendDlgItemMessageW(hDlg, ico3, STM_SETIMAGE, (WPARAM) IMAGE_ICON,
SendDlgItemMessageW(hDlg, ico3, STM_SETIMAGE, IMAGE_ICON,
(LPARAM)PrintStructures->hCollateIcon);
else
SendDlgItemMessageW(hDlg, ico3, STM_SETIMAGE, (WPARAM) IMAGE_ICON,
SendDlgItemMessageW(hDlg, ico3, STM_SETIMAGE, IMAGE_ICON,
(LPARAM)PrintStructures->hNoCollateIcon);
break;
case edt1: /* from page nr editbox */
@@ -1679,11 +1715,6 @@ static LRESULT PRINTDLG_WMCommandW(HWND hDlg, WPARAM wParam,
}
break;
case psh1: /* Print Setup */
{
ERR("psh1 is called from 16bit code only, we should not get here.\n");
}
break;
case psh2: /* Properties button */
{
HANDLE hPrinter;
@@ -1706,7 +1737,7 @@ static LRESULT PRINTDLG_WMCommandW(HWND hDlg, WPARAM wParam,
if (lppd->Flags & PD_PRINTSETUP)
{
lpdm->u1.s1.dmOrientation = DMORIENT_PORTRAIT;
SendDlgItemMessageW(hDlg, ico1, STM_SETIMAGE, (WPARAM) IMAGE_ICON,
SendDlgItemMessageW(hDlg, ico1, STM_SETIMAGE, IMAGE_ICON,
(LPARAM)(PrintStructures->hPortraitIcon));
}
break;
@@ -1715,7 +1746,7 @@ static LRESULT PRINTDLG_WMCommandW(HWND hDlg, WPARAM wParam,
if (lppd->Flags & PD_PRINTSETUP)
{
lpdm->u1.s1.dmOrientation = DMORIENT_LANDSCAPE;
SendDlgItemMessageW(hDlg, ico1, STM_SETIMAGE, (WPARAM) IMAGE_ICON,
SendDlgItemMessageW(hDlg, ico1, STM_SETIMAGE, IMAGE_ICON,
(LPARAM)(PrintStructures->hLandscapeIcon));
}
break;
@@ -1757,21 +1788,17 @@ static LRESULT PRINTDLG_WMCommandW(HWND hDlg, WPARAM wParam,
if (IsDlgButtonChecked(hDlg, rad1) == BST_CHECKED) {
if(lpdm->u1.s1.dmOrientation != DMORIENT_PORTRAIT) {
lpdm->u1.s1.dmOrientation = DMORIENT_PORTRAIT;
SendDlgItemMessageW(hDlg, stc10, STM_SETIMAGE,
(WPARAM)IMAGE_ICON,
SendDlgItemMessageW(hDlg, stc10, STM_SETIMAGE, IMAGE_ICON,
(LPARAM)PrintStructures->hPortraitIcon);
SendDlgItemMessageW(hDlg, ico1, STM_SETIMAGE,
(WPARAM)IMAGE_ICON,
SendDlgItemMessageW(hDlg, ico1, STM_SETIMAGE, IMAGE_ICON,
(LPARAM)PrintStructures->hPortraitIcon);
}
} else {
if(lpdm->u1.s1.dmOrientation != DMORIENT_LANDSCAPE) {
lpdm->u1.s1.dmOrientation = DMORIENT_LANDSCAPE;
SendDlgItemMessageW(hDlg, stc10, STM_SETIMAGE,
(WPARAM)IMAGE_ICON,
SendDlgItemMessageW(hDlg, stc10, STM_SETIMAGE, IMAGE_ICON,
(LPARAM)PrintStructures->hLandscapeIcon);
SendDlgItemMessageW(hDlg, ico1, STM_SETIMAGE,
(WPARAM)IMAGE_ICON,
SendDlgItemMessageW(hDlg, ico1, STM_SETIMAGE, IMAGE_ICON,
(LPARAM)PrintStructures->hLandscapeIcon);
}
}
@@ -1802,7 +1829,7 @@ static INT_PTR CALLBACK PrintDlgProcA(HWND hDlg, UINT uMsg, WPARAM wParam,
EndDialog(hDlg,FALSE);
return FALSE;
}
res = PRINTDLG_WMInitDialog(hDlg, wParam, PrintStructures);
res = PRINTDLG_WMInitDialog(hDlg, PrintStructures);
if(PrintStructures->lpPrintDlg->Flags & PD_ENABLEPRINTHOOK)
res = PrintStructures->lpPrintDlg->lpfnPrintHook(
@@ -1851,7 +1878,7 @@ static INT_PTR CALLBACK PrintDlgProcW(HWND hDlg, UINT uMsg, WPARAM wParam,
EndDialog(hDlg,FALSE);
return FALSE;
}
res = PRINTDLG_WMInitDialogW(hDlg, wParam, PrintStructures);
res = PRINTDLG_WMInitDialogW(hDlg, PrintStructures);
if(PrintStructures->lpPrintDlg->Flags & PD_ENABLEPRINTHOOK)
res = PrintStructures->lpPrintDlg->lpfnPrintHook(hDlg, uMsg, wParam, (LPARAM)PrintStructures->lpPrintDlg);
@@ -2030,7 +2057,6 @@ BOOL WINAPI PrintDlgA(LPPRINTDLGA lppd)
return FALSE;
}
hInst = (HINSTANCE)GetWindowLongPtrA( lppd->hwndOwner, GWLP_HINSTANCE );
if(TRACE_ON(commdlg)) {
char flagstr[1000] = "";
const struct pd_flags *pflag = pd_flags;
@@ -2123,6 +2149,8 @@ BOOL WINAPI PrintDlgA(LPPRINTDLGA lppd)
/* and create & process the dialog .
* -1 is failure, 0 is broken hwnd, everything else is ok.
*/
hInst = COMDLG32_hInstance;
if (lppd->Flags & (PD_ENABLESETUPTEMPLATE | PD_ENABLEPRINTTEMPLATE)) hInst = lppd->hInstance;
bRet = (0<DialogBoxIndirectParamA(hInst, ptr, lppd->hwndOwner,
PrintDlgProcA,
(LPARAM)PrintStructures));
@@ -2180,7 +2208,6 @@ BOOL WINAPI PrintDlgW(LPPRINTDLGW lppd)
return FALSE;
}
hInst = (HINSTANCE)GetWindowLongPtrW( lppd->hwndOwner, GWLP_HINSTANCE );
if(TRACE_ON(commdlg)) {
char flagstr[1000] = "";
const struct pd_flags *pflag = pd_flags;
@@ -2273,6 +2300,8 @@ BOOL WINAPI PrintDlgW(LPPRINTDLGW lppd)
/* and create & process the dialog .
* -1 is failure, 0 is broken hwnd, everything else is ok.
*/
hInst = COMDLG32_hInstance;
if (lppd->Flags & (PD_ENABLESETUPTEMPLATE | PD_ENABLEPRINTTEMPLATE)) hInst = lppd->hInstance;
bRet = (0<DialogBoxIndirectParamW(hInst, ptr, lppd->hwndOwner,
PrintDlgProcW,
(LPARAM)PrintStructures));
-602
View File
@@ -1,602 +0,0 @@
/*
* COMMDLG - Print Dialog
*
* Copyright 1994 Martin Ayotte
* Copyright 1996 Albrecht Kleine
* Copyright 1999 Klaas van Gend
* Copyright 2000 Huw D M Davies
*
* 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 <ctype.h>
#include <stdlib.h>
#include <stdarg.h>
#include <stdio.h>
#include <string.h>
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
#include "windef.h"
#include "winbase.h"
#include "wingdi.h"
#include "wine/wingdi16.h"
#include "winuser.h"
#include "wine/winuser16.h"
#include "commdlg.h"
#include "dlgs.h"
#include "wine/debug.h"
#include "cderr.h"
#include "winspool.h"
WINE_DEFAULT_DEBUG_CHANNEL(commdlg);
#include "cdlg.h"
#include "cdlg16.h"
#include "printdlg.h"
typedef struct
{
PRINT_PTRA print32;
LPPRINTDLG16 lpPrintDlg16;
} PRINT_PTRA16;
/* Internal Functions */
static BOOL PRINTDLG_CreateDevNames16(HGLOBAL16 *hmem, const char* DeviceDriverName,
const char* DeviceName, const char* OutputPort)
{
long size;
char* pDevNamesSpace;
char* pTempPtr;
LPDEVNAMES lpDevNames;
char buf[260];
DWORD dwBufLen = sizeof(buf);
size = strlen(DeviceDriverName) + 1
+ strlen(DeviceName) + 1
+ strlen(OutputPort) + 1
+ sizeof(DEVNAMES);
if(*hmem)
*hmem = GlobalReAlloc16(*hmem, size, GMEM_MOVEABLE);
else
*hmem = GlobalAlloc16(GMEM_MOVEABLE, size);
if (*hmem == 0)
return FALSE;
pDevNamesSpace = GlobalLock16(*hmem);
lpDevNames = (LPDEVNAMES) pDevNamesSpace;
pTempPtr = pDevNamesSpace + sizeof(DEVNAMES);
strcpy(pTempPtr, DeviceDriverName);
lpDevNames->wDriverOffset = pTempPtr - pDevNamesSpace;
pTempPtr += strlen(DeviceDriverName) + 1;
strcpy(pTempPtr, DeviceName);
lpDevNames->wDeviceOffset = pTempPtr - pDevNamesSpace;
pTempPtr += strlen(DeviceName) + 1;
strcpy(pTempPtr, OutputPort);
lpDevNames->wOutputOffset = pTempPtr - pDevNamesSpace;
GetDefaultPrinterA(buf, &dwBufLen);
lpDevNames->wDefault = (strcmp(buf, DeviceName) == 0) ? 1 : 0;
GlobalUnlock16(*hmem);
return TRUE;
}
/***********************************************************************
* PRINTDLG_WMInitDialog [internal]
*/
static LRESULT PRINTDLG_WMInitDialog16(HWND hDlg, WPARAM wParam, PRINT_PTRA16* ptr16)
{
PRINT_PTRA *PrintStructures = &ptr16->print32;
LPPRINTDLG16 lppd = ptr16->lpPrintDlg16;
DEVNAMES *pdn;
DEVMODEA *pdm;
char *name = NULL;
UINT comboID = (lppd->Flags & PD_PRINTSETUP) ? cmb1 : cmb4;
/* load Collate ICONs */
PrintStructures->hCollateIcon =
LoadIconA(COMDLG32_hInstance, "PD32_COLLATE");
PrintStructures->hNoCollateIcon =
LoadIconA(COMDLG32_hInstance, "PD32_NOCOLLATE");
if(PrintStructures->hCollateIcon == 0 ||
PrintStructures->hNoCollateIcon == 0) {
ERR("no icon in resourcefile\n");
COMDLG32_SetCommDlgExtendedError(CDERR_LOADRESFAILURE);
EndDialog(hDlg, FALSE);
}
/* load Paper Orientation ICON */
/* FIXME: not implemented yet */
/*
* if lppd->Flags PD_SHOWHELP is specified, a HELPMESGSTRING message
* must be registered and the Help button must be shown.
*/
if (lppd->Flags & PD_SHOWHELP) {
if((PrintStructures->HelpMessageID =
RegisterWindowMessageA(HELPMSGSTRINGA)) == 0) {
COMDLG32_SetCommDlgExtendedError(CDERR_REGISTERMSGFAIL);
return FALSE;
}
} else
PrintStructures->HelpMessageID = 0;
if (!(lppd->Flags & PD_PRINTSETUP)) {
/* We have a print quality combo box. What shall we do? */
if (GetDlgItem(hDlg,cmb1)) {
char buf [20];
FIXME("Print quality only displaying currently.\n");
pdm = GlobalLock16(lppd->hDevMode);
if(pdm) {
switch (pdm->u1.s1.dmPrintQuality) {
case DMRES_HIGH : strcpy(buf,"High");break;
case DMRES_MEDIUM : strcpy(buf,"Medium");break;
case DMRES_LOW : strcpy(buf,"Low");break;
case DMRES_DRAFT : strcpy(buf,"Draft");break;
case 0 : strcpy(buf,"Default");break;
default : sprintf(buf,"%ddpi",pdm->u1.s1.dmPrintQuality);break;
}
GlobalUnlock16(lppd->hDevMode);
} else
strcpy(buf,"Default");
SendDlgItemMessageA(hDlg,cmb1,CB_ADDSTRING,0,(LPARAM)buf);
SendDlgItemMessageA(hDlg,cmb1,CB_SETCURSEL,0,0);
EnableWindow(GetDlgItem(hDlg,cmb1),FALSE);
}
}
/* FIXME: I allow more freedom than either Win95 or WinNT,
* which do not agree to what errors should be thrown or not
* in case nToPage or nFromPage is out-of-range.
*/
if (lppd->nMaxPage < lppd->nMinPage)
lppd->nMaxPage = lppd->nMinPage;
if (lppd->nMinPage == lppd->nMaxPage)
lppd->Flags |= PD_NOPAGENUMS;
if (lppd->nToPage < lppd->nMinPage)
lppd->nToPage = lppd->nMinPage;
if (lppd->nToPage > lppd->nMaxPage)
lppd->nToPage = lppd->nMaxPage;
if (lppd->nFromPage < lppd->nMinPage)
lppd->nFromPage = lppd->nMinPage;
if (lppd->nFromPage > lppd->nMaxPage)
lppd->nFromPage = lppd->nMaxPage;
/* If the printer combo box is in the dialog, fill it */
if (GetDlgItem(hDlg,comboID)) {
/* Fill Combobox
*/
pdn = GlobalLock16(lppd->hDevNames);
pdm = GlobalLock16(lppd->hDevMode);
if(pdn)
name = (char*)pdn + pdn->wDeviceOffset;
else if(pdm)
name = (char*)pdm->dmDeviceName;
PRINTDLG_SetUpPrinterListComboA(hDlg, comboID, name);
if(pdm) GlobalUnlock16(lppd->hDevMode);
if(pdn) GlobalUnlock16(lppd->hDevNames);
/* Now find selected printer and update rest of dlg */
name = HeapAlloc(GetProcessHeap(),0,256);
if (GetDlgItemTextA(hDlg, comboID, name, 255))
PRINTDLG_ChangePrinterA(hDlg, name, PrintStructures);
} else {
/* else just use default printer */
char name[200];
DWORD dwBufLen = sizeof(name);
BOOL ret = GetDefaultPrinterA(name, &dwBufLen);
if (ret)
PRINTDLG_ChangePrinterA(hDlg, name, PrintStructures);
else
FIXME("No default printer found, expect problems!\n");
}
HeapFree(GetProcessHeap(),0,name);
return TRUE;
}
/************************************************************
*
* PRINTDLG_Get16TemplateFrom32 [Internal]
* Generates a 16 bits template from the Wine 32 bits resource
*
*/
static HGLOBAL16 PRINTDLG_Get16TemplateFrom32(LPCSTR PrintResourceName)
{
HRSRC hResInfo;
HGLOBAL hDlgTmpl32;
LPCVOID template32;
DWORD size;
HGLOBAL16 hGlobal16;
LPVOID template;
if (!(hResInfo = FindResourceA(COMDLG32_hInstance,
PrintResourceName, (LPSTR)RT_DIALOG)))
{
COMDLG32_SetCommDlgExtendedError(CDERR_FINDRESFAILURE);
return 0;
}
if (!(hDlgTmpl32 = LoadResource(COMDLG32_hInstance, hResInfo )) ||
!(template32 = LockResource( hDlgTmpl32 )))
{
COMDLG32_SetCommDlgExtendedError(CDERR_LOADRESFAILURE);
return 0;
}
size = SizeofResource(COMDLG32_hInstance, hResInfo);
hGlobal16 = GlobalAlloc16(0, size);
if (!hGlobal16)
{
COMDLG32_SetCommDlgExtendedError(CDERR_MEMALLOCFAILURE);
ERR("alloc failure for %d bytes\n", size);
return 0;
}
template = GlobalLock16(hGlobal16);
if (!template)
{
COMDLG32_SetCommDlgExtendedError(CDERR_MEMLOCKFAILURE);
ERR("global lock failure for %x handle\n", hGlobal16);
GlobalFree16(hGlobal16);
return 0;
}
ConvertDialog32To16(template32, size, template);
GlobalUnlock16(hGlobal16);
return hGlobal16;
}
static BOOL PRINTDLG_CreateDC16(LPPRINTDLG16 lppd)
{
DEVNAMES *pdn = GlobalLock16(lppd->hDevNames);
DEVMODEA *pdm = GlobalLock16(lppd->hDevMode);
if(lppd->Flags & PD_RETURNDC) {
lppd->hDC = HDC_16(CreateDCA((char*)pdn + pdn->wDriverOffset,
(char*)pdn + pdn->wDeviceOffset,
(char*)pdn + pdn->wOutputOffset,
pdm ));
} else if(lppd->Flags & PD_RETURNIC) {
lppd->hDC = HDC_16(CreateICA((char*)pdn + pdn->wDriverOffset,
(char*)pdn + pdn->wDeviceOffset,
(char*)pdn + pdn->wOutputOffset,
pdm ));
}
GlobalUnlock16(lppd->hDevNames);
GlobalUnlock16(lppd->hDevMode);
return lppd->hDC ? TRUE : FALSE;
}
/************************************************************
*
* PRINTDLG_GetDlgTemplate
*
*/
static HGLOBAL16 PRINTDLG_GetDlgTemplate16(const PRINTDLG16 *lppd)
{
HGLOBAL16 hDlgTmpl, hResInfo;
if (lppd->Flags & PD_PRINTSETUP) {
if(lppd->Flags & PD_ENABLESETUPTEMPLATEHANDLE) {
hDlgTmpl = lppd->hSetupTemplate;
} else if(lppd->Flags & PD_ENABLESETUPTEMPLATE) {
hResInfo = FindResource16(lppd->hInstance,
MapSL(lppd->lpSetupTemplateName), (LPSTR)RT_DIALOG);
hDlgTmpl = LoadResource16(lppd->hInstance, hResInfo);
} else {
hDlgTmpl = PRINTDLG_Get16TemplateFrom32("PRINT32_SETUP");
}
} else {
if(lppd->Flags & PD_ENABLEPRINTTEMPLATEHANDLE) {
hDlgTmpl = lppd->hPrintTemplate;
} else if(lppd->Flags & PD_ENABLEPRINTTEMPLATE) {
hResInfo = FindResource16(lppd->hInstance,
MapSL(lppd->lpPrintTemplateName),
(LPSTR)RT_DIALOG);
hDlgTmpl = LoadResource16(lppd->hInstance, hResInfo);
} else {
hDlgTmpl = PRINTDLG_Get16TemplateFrom32("PRINT32");
}
}
return hDlgTmpl;
}
/**********************************************************************
*
* 16 bit commdlg
*/
/***********************************************************************
* PrintDlg (COMMDLG.20)
*
* Displays the PRINT dialog box, which enables the user to specify
* specific properties of the print job.
*
* RETURNS
* nonzero if the user pressed the OK button
* zero if the user cancelled the window or an error occurred
*
* BUGS
* * calls up to the 32-bit versions of the Dialogs, which look different
* * Customizing is *not* implemented.
*/
BOOL16 WINAPI PrintDlg16(
LPPRINTDLG16 lppd /* [in/out] ptr to PRINTDLG struct */
) {
BOOL bRet = FALSE;
LPVOID ptr;
HINSTANCE16 hInst = GetWindowLongPtrW( HWND_32(lppd->hwndOwner), GWLP_HINSTANCE );
if(TRACE_ON(commdlg)) {
char flagstr[1000] = "";
const struct pd_flags *pflag = pd_flags;
for( ; pflag->name; pflag++) {
if(lppd->Flags & pflag->flag)
strcat(flagstr, pflag->name);
}
TRACE("(%p): hwndOwner = %08x, hDevMode = %08x, hDevNames = %08x\n"
"pp. %d-%d, min p %d, max p %d, copies %d, hinst %08x\n"
"flags %08x (%s)\n",
lppd, lppd->hwndOwner, lppd->hDevMode, lppd->hDevNames,
lppd->nFromPage, lppd->nToPage, lppd->nMinPage, lppd->nMaxPage,
lppd->nCopies, lppd->hInstance, lppd->Flags, flagstr);
}
if(lppd->lStructSize != sizeof(PRINTDLG16)) {
ERR("structure size %d\n",lppd->lStructSize);
COMDLG32_SetCommDlgExtendedError(CDERR_STRUCTSIZE);
return FALSE;
}
if(lppd->Flags & PD_RETURNDEFAULT) {
PRINTER_INFO_2A *pbuf;
DRIVER_INFO_3A *dbuf;
HANDLE hprn;
DWORD needed;
if(lppd->hDevMode || lppd->hDevNames) {
WARN("hDevMode or hDevNames non-zero for PD_RETURNDEFAULT\n");
COMDLG32_SetCommDlgExtendedError(PDERR_RETDEFFAILURE);
return FALSE;
}
if(!PRINTDLG_OpenDefaultPrinter(&hprn)) {
WARN("Can't find default printer\n");
COMDLG32_SetCommDlgExtendedError(PDERR_NODEFAULTPRN);
return FALSE;
}
GetPrinterA(hprn, 2, NULL, 0, &needed);
pbuf = HeapAlloc(GetProcessHeap(), 0, needed);
GetPrinterA(hprn, 2, (LPBYTE)pbuf, needed, &needed);
GetPrinterDriverA(hprn, NULL, 3, NULL, 0, &needed);
dbuf = HeapAlloc(GetProcessHeap(),0,needed);
if (!GetPrinterDriverA(hprn, NULL, 3, (LPBYTE)dbuf, needed, &needed)) {
ERR("GetPrinterDriverA failed for %s, le %d, fix your config!\n",
pbuf->pPrinterName,GetLastError());
HeapFree(GetProcessHeap(), 0, dbuf);
HeapFree(GetProcessHeap(), 0, pbuf);
COMDLG32_SetCommDlgExtendedError(PDERR_RETDEFFAILURE);
return FALSE;
}
ClosePrinter(hprn);
PRINTDLG_CreateDevNames16(&(lppd->hDevNames),
dbuf->pDriverPath,
pbuf->pPrinterName,
pbuf->pPortName);
lppd->hDevMode = GlobalAlloc16(GMEM_MOVEABLE,pbuf->pDevMode->dmSize+
pbuf->pDevMode->dmDriverExtra);
ptr = GlobalLock16(lppd->hDevMode);
memcpy(ptr, pbuf->pDevMode, pbuf->pDevMode->dmSize +
pbuf->pDevMode->dmDriverExtra);
GlobalUnlock16(lppd->hDevMode);
HeapFree(GetProcessHeap(), 0, pbuf);
HeapFree(GetProcessHeap(), 0, dbuf);
bRet = TRUE;
} else {
HGLOBAL16 hDlgTmpl;
PRINT_PTRA *PrintStructures;
PRINT_PTRA16 *ptr16;
/* load Dialog resources,
* depending on Flags indicates Print32 or Print32_setup dialog
*/
hDlgTmpl = PRINTDLG_GetDlgTemplate16(lppd);
if (!hDlgTmpl) {
COMDLG32_SetCommDlgExtendedError(CDERR_LOADRESFAILURE);
return FALSE;
}
ptr16 = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(PRINT_PTRA16));
ptr16->lpPrintDlg16 = lppd;
PrintStructures = &ptr16->print32;
PrintStructures->lpPrintDlg = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(PRINTDLGA));
#define CVAL(x) PrintStructures->lpPrintDlg->x = lppd->x;
#define MVAL(x) PrintStructures->lpPrintDlg->x = MapSL(lppd->x);
CVAL(Flags);
PrintStructures->lpPrintDlg->hwndOwner = HWND_32(lppd->hwndOwner);
PrintStructures->lpPrintDlg->hDC = HDC_32(lppd->hDC);
CVAL(nFromPage);CVAL(nToPage);CVAL(nMinPage);CVAL(nMaxPage);
CVAL(nCopies);
PrintStructures->lpPrintDlg->hInstance = HINSTANCE_32(lppd->hInstance);
CVAL(lCustData);
MVAL(lpPrintTemplateName);MVAL(lpSetupTemplateName);
/* Don't copy rest, it is 16 bit specific */
#undef MVAL
#undef CVAL
PrintStructures->lpDevMode = HeapAlloc(GetProcessHeap(),0,sizeof(DEVMODEA));
/* and create & process the dialog .
* -1 is failure, 0 is broken hwnd, everything else is ok.
*/
bRet = (0<DialogBoxIndirectParam16(
hInst, hDlgTmpl, lppd->hwndOwner,
(DLGPROC16)GetProcAddress16(GetModuleHandle16("COMMDLG"),(LPCSTR)21),
(LPARAM)PrintStructures
)
);
if (!PrintStructures->lpPrinterInfo) bRet = FALSE;
if(bRet) {
DEVMODEA *lpdm = PrintStructures->lpDevMode, *lpdmReturn;
PRINTER_INFO_2A *pi = PrintStructures->lpPrinterInfo;
DRIVER_INFO_3A *di = PrintStructures->lpDriverInfo;
if (lppd->hDevMode == 0) {
TRACE(" No hDevMode yet... Need to create my own\n");
lppd->hDevMode = GlobalAlloc16(GMEM_MOVEABLE,
lpdm->dmSize + lpdm->dmDriverExtra);
} else {
WORD locks;
if((locks = (GlobalFlags16(lppd->hDevMode)&GMEM_LOCKCOUNT))) {
WARN("hDevMode has %d locks on it. Unlocking it now\n", locks);
while(locks--) {
GlobalUnlock16(lppd->hDevMode);
TRACE("Now got %d locks\n", locks);
}
}
lppd->hDevMode = GlobalReAlloc16(lppd->hDevMode,
lpdm->dmSize + lpdm->dmDriverExtra,
GMEM_MOVEABLE);
}
lpdmReturn = GlobalLock16(lppd->hDevMode);
memcpy(lpdmReturn, lpdm, lpdm->dmSize + lpdm->dmDriverExtra);
if (lppd->hDevNames != 0) {
WORD locks;
if((locks = (GlobalFlags16(lppd->hDevNames)&GMEM_LOCKCOUNT))) {
WARN("hDevNames has %d locks on it. Unlocking it now\n", locks);
while(locks--)
GlobalUnlock16(lppd->hDevNames);
}
}
PRINTDLG_CreateDevNames16(&(lppd->hDevNames),
di->pDriverPath,
pi->pPrinterName,
pi->pPortName
);
GlobalUnlock16(lppd->hDevMode);
/* Copy back the [out] integer parameters */
#define CVAL(x) lppd->x = PrintStructures->lpPrintDlg->x;
CVAL(Flags);
CVAL(nFromPage);
CVAL(nToPage);
CVAL(nCopies);
#undef CVAL
}
if (!(lppd->Flags & (PD_ENABLESETUPTEMPLATEHANDLE | PD_ENABLESETUPTEMPLATE)))
GlobalFree16(hDlgTmpl); /* created from the 32 bits resource */
HeapFree(GetProcessHeap(), 0, PrintStructures->lpDevMode);
HeapFree(GetProcessHeap(), 0, PrintStructures->lpPrinterInfo);
HeapFree(GetProcessHeap(), 0, PrintStructures->lpDriverInfo);
HeapFree(GetProcessHeap(), 0, ptr16);
}
if(bRet && (lppd->Flags & PD_RETURNDC || lppd->Flags & PD_RETURNIC))
bRet = PRINTDLG_CreateDC16(lppd);
TRACE("exit! (%d)\n", bRet);
return bRet;
}
/***********************************************************************
* PrintDlgProc (COMMDLG.21)
*/
BOOL16 CALLBACK PrintDlgProc16(HWND16 hDlg16, UINT16 uMsg, WPARAM16 wParam,
LPARAM lParam)
{
HWND hDlg = HWND_32(hDlg16);
PRINT_PTRA16 *PrintStructures;
BOOL16 res = FALSE;
if (uMsg!=WM_INITDIALOG) {
PrintStructures = GetPropA(hDlg,"__WINE_PRINTDLGDATA");
if (!PrintStructures)
return FALSE;
} else {
PrintStructures = (PRINT_PTRA16*) lParam;
SetPropA(hDlg,"__WINE_PRINTDLGDATA",PrintStructures);
res = PRINTDLG_WMInitDialog16(hDlg, wParam, PrintStructures);
if(PrintStructures->lpPrintDlg16->Flags & PD_ENABLEPRINTHOOK) {
res = CallWindowProc16(
(WNDPROC16)PrintStructures->lpPrintDlg16->lpfnPrintHook,
hDlg16, uMsg, wParam, (LPARAM)PrintStructures->lpPrintDlg16
);
}
return res;
}
if(PrintStructures->lpPrintDlg16->Flags & PD_ENABLEPRINTHOOK) {
res = CallWindowProc16(
(WNDPROC16)PrintStructures->lpPrintDlg16->lpfnPrintHook,
hDlg16,uMsg, wParam, lParam
);
if(LOWORD(res)) return res;
}
switch (uMsg) {
case WM_COMMAND: {
/* We need to map those for the 32bit window procedure, compare
* with 32Ato16 mapper in winproc.c
*/
return PRINTDLG_WMCommandA(
hDlg,
MAKEWPARAM(wParam,HIWORD(lParam)),
LOWORD(lParam),
&PrintStructures->print32
);
}
case WM_DESTROY:
DestroyIcon(PrintStructures->print32.hCollateIcon);
DestroyIcon(PrintStructures->print32.hNoCollateIcon);
/* FIXME: don't forget to delete the paper orientation icons here! */
return FALSE;
}
return res;
}
/***********************************************************************
* PrintSetupDlgProc (COMMDLG.22)
*/
BOOL16 CALLBACK PrintSetupDlgProc16(HWND16 hWnd16, UINT16 wMsg, WPARAM16 wParam,
LPARAM lParam)
{
HWND hWnd = HWND_32(hWnd16);
switch (wMsg)
{
case WM_INITDIALOG:
TRACE("WM_INITDIALOG lParam=%08lX\n", lParam);
ShowWindow(hWnd, SW_SHOWNORMAL);
return (TRUE);
case WM_COMMAND:
switch (wParam) {
case IDOK:
EndDialog(hWnd, TRUE);
return(TRUE);
case IDCANCEL:
EndDialog(hWnd, FALSE);
return(TRUE);
}
return(FALSE);
}
return FALSE;
}
+9 -8
View File
@@ -45,29 +45,30 @@
#include "cdlg_Ca.rc"
#include "cdlg_Cs.rc"
#include "cdlg_Da.rc"
#include "cdlg_De.rc"
#include "cdlg_El.rc"
#include "cdlg_En.rc"
#include "cdlg_Eo.rc"
#include "cdlg_Es.rc"
#include "cdlg_Fi.rc"
#include "cdlg_Fr.rc"
#include "cdlg_Hu.rc"
#include "cdlg_It.rc"
#include "cdlg_Ja.rc"
#include "cdlg_Ko.rc"
#include "cdlg_Lt.rc"
#include "cdlg_Nl.rc"
#include "cdlg_No.rc"
#include "cdlg_Pl.rc"
#include "cdlg_Pt.rc"
#include "cdlg_Ro.rc"
#include "cdlg_Ru.rc"
#include "cdlg_Si.rc"
#include "cdlg_Sk.rc"
#include "cdlg_Sv.rc"
#include "cdlg_Th.rc"
#include "cdlg_Tr.rc"
#include "cdlg_Uk.rc"
#include "cdlg_Wa.rc"
#include "cdlg_De.rc"
#include "cdlg_Fr.rc"
#include "cdlg_Ja.rc"
#include "cdlg_Lt.rc"
#include "cdlg_Pt.rc"
#include "cdlg_Ro.rc"
#include "cdlg_Ru.rc"
#include "cdlg_Si.rc"
#include "cdlg_Zh.rc"
-4
View File
@@ -233,10 +233,6 @@ ConvertBitmapInfo(
BOOL FollowedByData
);
DEVMODEW *
NTAPI
GdiConvertToDevmodeW(DEVMODEA *dm);
DWORD
WINAPI
GetAndSetDCDWord( HDC, INT, DWORD, DWORD, DWORD, DWORD );
+1 -1
View File
@@ -1353,7 +1353,7 @@ GdiConvertMetaFilePict(HGLOBAL hMem)
*/
DEVMODEW *
WINAPI
GdiConvertToDevmodeW(DEVMODEA *dmA)
GdiConvertToDevmodeW(const DEVMODEA *dmA)
{
DEVMODEW *dmW;
WORD dmW_size, dmA_size;
-1
View File
@@ -147,6 +147,5 @@ HRESULT WINAPI DllGetClassObject( REFCLSID rclsid, REFIID iid, LPVOID *ppv )
HRESULT WINAPI DllCanUnloadNow( void )
{
FIXME("\n");
return S_FALSE;
}
+2
View File
@@ -12,6 +12,8 @@
<file>hnetcfg.c</file>
<file>manager.c</file>
<file>policy.c</file>
<file>port.c</file>
<file>profile.c</file>
<file>regsvr.c</file>
<file>service.c</file>
</module>
+2
View File
@@ -21,3 +21,5 @@ HRESULT NetFwPolicy_create(IUnknown *, LPVOID *);
HRESULT NetFwProfile_create(IUnknown *, LPVOID *);
HRESULT NetFwAuthorizedApplication_create(IUnknown *, LPVOID *);
HRESULT NetFwAuthorizedApplications_create(IUnknown *, LPVOID *);
HRESULT NetFwOpenPorts_create(IUnknown *, LPVOID *);
HRESULT NetFwServices_create(IUnknown *, LPVOID *);
+544
View File
@@ -0,0 +1,544 @@
/*
* Copyright 2009 Hans Leidekker for CodeWeavers
*
* 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 "config.h"
#include <stdarg.h>
#include <stdio.h>
#define COBJMACROS
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
#include "ole2.h"
#include "netfw.h"
#include "wine/debug.h"
#include "wine/unicode.h"
#include "hnetcfg_private.h"
WINE_DEFAULT_DEBUG_CHANNEL(hnetcfg);
typedef struct fw_port
{
const INetFwOpenPortVtbl *vtbl;
LONG refs;
} fw_port;
static inline fw_port *impl_from_INetFwOpenPort( INetFwOpenPort *iface )
{
return (fw_port *)((char *)iface - FIELD_OFFSET( fw_port, vtbl ));
}
static ULONG WINAPI fw_port_AddRef(
INetFwOpenPort *iface )
{
fw_port *fw_port = impl_from_INetFwOpenPort( iface );
return InterlockedIncrement( &fw_port->refs );
}
static ULONG WINAPI fw_port_Release(
INetFwOpenPort *iface )
{
fw_port *fw_port = impl_from_INetFwOpenPort( iface );
LONG refs = InterlockedDecrement( &fw_port->refs );
if (!refs)
{
TRACE("destroying %p\n", fw_port);
HeapFree( GetProcessHeap(), 0, fw_port );
}
return refs;
}
static HRESULT WINAPI fw_port_QueryInterface(
INetFwOpenPort *iface,
REFIID riid,
void **ppvObject )
{
fw_port *This = impl_from_INetFwOpenPort( iface );
TRACE("%p %s %p\n", This, debugstr_guid( riid ), ppvObject );
if ( IsEqualGUID( riid, &IID_INetFwOpenPort ) ||
IsEqualGUID( riid, &IID_IDispatch ) ||
IsEqualGUID( riid, &IID_IUnknown ) )
{
*ppvObject = iface;
}
else
{
FIXME("interface %s not implemented\n", debugstr_guid(riid));
return E_NOINTERFACE;
}
INetFwOpenPort_AddRef( iface );
return S_OK;
}
static HRESULT WINAPI fw_port_GetTypeInfoCount(
INetFwOpenPort *iface,
UINT *pctinfo )
{
fw_port *This = impl_from_INetFwOpenPort( iface );
FIXME("%p %p\n", This, pctinfo);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_port_GetTypeInfo(
INetFwOpenPort *iface,
UINT iTInfo,
LCID lcid,
ITypeInfo **ppTInfo )
{
fw_port *This = impl_from_INetFwOpenPort( iface );
FIXME("%p %u %u %p\n", This, iTInfo, lcid, ppTInfo);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_port_GetIDsOfNames(
INetFwOpenPort *iface,
REFIID riid,
LPOLESTR *rgszNames,
UINT cNames,
LCID lcid,
DISPID *rgDispId )
{
fw_port *This = impl_from_INetFwOpenPort( iface );
FIXME("%p %s %p %u %u %p\n", This, debugstr_guid(riid), rgszNames, cNames, lcid, rgDispId);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_port_Invoke(
INetFwOpenPort *iface,
DISPID dispIdMember,
REFIID riid,
LCID lcid,
WORD wFlags,
DISPPARAMS *pDispParams,
VARIANT *pVarResult,
EXCEPINFO *pExcepInfo,
UINT *puArgErr )
{
fw_port *This = impl_from_INetFwOpenPort( iface );
FIXME("%p %d %s %d %d %p %p %p %p\n", This, dispIdMember, debugstr_guid(riid),
lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_port_get_Name(
INetFwOpenPort *iface,
BSTR *name)
{
fw_port *This = impl_from_INetFwOpenPort( iface );
FIXME("%p %p\n", This, name);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_port_put_Name(
INetFwOpenPort *iface,
BSTR name)
{
fw_port *This = impl_from_INetFwOpenPort( iface );
FIXME("%p %s\n", This, debugstr_w(name));
return E_NOTIMPL;
}
static HRESULT WINAPI fw_port_get_IpVersion(
INetFwOpenPort *iface,
NET_FW_IP_VERSION *ipVersion)
{
fw_port *This = impl_from_INetFwOpenPort( iface );
FIXME("%p %p\n", This, ipVersion);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_port_put_IpVersion(
INetFwOpenPort *iface,
NET_FW_IP_VERSION ipVersion)
{
fw_port *This = impl_from_INetFwOpenPort( iface );
FIXME("%p %u\n", This, ipVersion);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_port_get_Protocol(
INetFwOpenPort *iface,
NET_FW_IP_PROTOCOL *ipProtocol)
{
fw_port *This = impl_from_INetFwOpenPort( iface );
FIXME("%p %p\n", This, ipProtocol);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_port_put_Protocol(
INetFwOpenPort *iface,
NET_FW_IP_PROTOCOL ipProtocol)
{
fw_port *This = impl_from_INetFwOpenPort( iface );
FIXME("%p %u\n", This, ipProtocol);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_port_get_Port(
INetFwOpenPort *iface,
LONG *portNumber)
{
fw_port *This = impl_from_INetFwOpenPort( iface );
FIXME("%p %p\n", This, portNumber);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_port_put_Port(
INetFwOpenPort *iface,
LONG portNumber)
{
fw_port *This = impl_from_INetFwOpenPort( iface );
FIXME("%p %d\n", This, portNumber);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_port_get_Scope(
INetFwOpenPort *iface,
NET_FW_SCOPE *scope)
{
fw_port *This = impl_from_INetFwOpenPort( iface );
FIXME("%p %p\n", This, scope);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_port_put_Scope(
INetFwOpenPort *iface,
NET_FW_SCOPE scope)
{
fw_port *This = impl_from_INetFwOpenPort( iface );
FIXME("%p %u\n", This, scope);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_port_get_RemoteAddresses(
INetFwOpenPort *iface,
BSTR *remoteAddrs)
{
fw_port *This = impl_from_INetFwOpenPort( iface );
FIXME("%p %p\n", This, remoteAddrs);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_port_put_RemoteAddresses(
INetFwOpenPort *iface,
BSTR remoteAddrs)
{
fw_port *This = impl_from_INetFwOpenPort( iface );
FIXME("%p %s\n", This, debugstr_w(remoteAddrs));
return E_NOTIMPL;
}
static HRESULT WINAPI fw_port_get_Enabled(
INetFwOpenPort *iface,
VARIANT_BOOL *enabled)
{
fw_port *This = impl_from_INetFwOpenPort( iface );
FIXME("%p %p\n", This, enabled);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_port_put_Enabled(
INetFwOpenPort *iface,
VARIANT_BOOL enabled)
{
fw_port *This = impl_from_INetFwOpenPort( iface );
FIXME("%p %d\n", This, enabled);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_port_get_BuiltIn(
INetFwOpenPort *iface,
VARIANT_BOOL *builtIn)
{
fw_port *This = impl_from_INetFwOpenPort( iface );
FIXME("%p %p\n", This, builtIn);
return E_NOTIMPL;
}
static const struct INetFwOpenPortVtbl fw_port_vtbl =
{
fw_port_QueryInterface,
fw_port_AddRef,
fw_port_Release,
fw_port_GetTypeInfoCount,
fw_port_GetTypeInfo,
fw_port_GetIDsOfNames,
fw_port_Invoke,
fw_port_get_Name,
fw_port_put_Name,
fw_port_get_IpVersion,
fw_port_put_IpVersion,
fw_port_get_Protocol,
fw_port_put_Protocol,
fw_port_get_Port,
fw_port_put_Port,
fw_port_get_Scope,
fw_port_put_Scope,
fw_port_get_RemoteAddresses,
fw_port_put_RemoteAddresses,
fw_port_get_Enabled,
fw_port_put_Enabled,
fw_port_get_BuiltIn
};
static HRESULT NetFwOpenPort_create( IUnknown *pUnkOuter, LPVOID *ppObj )
{
fw_port *fp;
TRACE("(%p,%p)\n", pUnkOuter, ppObj);
fp = HeapAlloc( GetProcessHeap(), 0, sizeof(*fp) );
if (!fp) return E_OUTOFMEMORY;
fp->vtbl = &fw_port_vtbl;
fp->refs = 1;
*ppObj = &fp->vtbl;
TRACE("returning iface %p\n", *ppObj);
return S_OK;
}
typedef struct fw_ports
{
const INetFwOpenPortsVtbl *vtbl;
LONG refs;
} fw_ports;
static inline fw_ports *impl_from_INetFwOpenPorts( INetFwOpenPorts *iface )
{
return (fw_ports *)((char *)iface - FIELD_OFFSET( fw_ports, vtbl ));
}
static ULONG WINAPI fw_ports_AddRef(
INetFwOpenPorts *iface )
{
fw_ports *fw_ports = impl_from_INetFwOpenPorts( iface );
return InterlockedIncrement( &fw_ports->refs );
}
static ULONG WINAPI fw_ports_Release(
INetFwOpenPorts *iface )
{
fw_ports *fw_ports = impl_from_INetFwOpenPorts( iface );
LONG refs = InterlockedDecrement( &fw_ports->refs );
if (!refs)
{
TRACE("destroying %p\n", fw_ports);
HeapFree( GetProcessHeap(), 0, fw_ports );
}
return refs;
}
static HRESULT WINAPI fw_ports_QueryInterface(
INetFwOpenPorts *iface,
REFIID riid,
void **ppvObject )
{
fw_ports *This = impl_from_INetFwOpenPorts( iface );
TRACE("%p %s %p\n", This, debugstr_guid( riid ), ppvObject );
if ( IsEqualGUID( riid, &IID_INetFwOpenPorts ) ||
IsEqualGUID( riid, &IID_IDispatch ) ||
IsEqualGUID( riid, &IID_IUnknown ) )
{
*ppvObject = iface;
}
else
{
FIXME("interface %s not implemented\n", debugstr_guid(riid));
return E_NOINTERFACE;
}
INetFwOpenPorts_AddRef( iface );
return S_OK;
}
static HRESULT WINAPI fw_ports_GetTypeInfoCount(
INetFwOpenPorts *iface,
UINT *pctinfo )
{
fw_ports *This = impl_from_INetFwOpenPorts( iface );
FIXME("%p %p\n", This, pctinfo);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_ports_GetTypeInfo(
INetFwOpenPorts *iface,
UINT iTInfo,
LCID lcid,
ITypeInfo **ppTInfo )
{
fw_ports *This = impl_from_INetFwOpenPorts( iface );
FIXME("%p %u %u %p\n", This, iTInfo, lcid, ppTInfo);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_ports_GetIDsOfNames(
INetFwOpenPorts *iface,
REFIID riid,
LPOLESTR *rgszNames,
UINT cNames,
LCID lcid,
DISPID *rgDispId )
{
fw_ports *This = impl_from_INetFwOpenPorts( iface );
FIXME("%p %s %p %u %u %p\n", This, debugstr_guid(riid), rgszNames, cNames, lcid, rgDispId);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_ports_Invoke(
INetFwOpenPorts *iface,
DISPID dispIdMember,
REFIID riid,
LCID lcid,
WORD wFlags,
DISPPARAMS *pDispParams,
VARIANT *pVarResult,
EXCEPINFO *pExcepInfo,
UINT *puArgErr )
{
fw_ports *This = impl_from_INetFwOpenPorts( iface );
FIXME("%p %d %s %d %d %p %p %p %p\n", This, dispIdMember, debugstr_guid(riid),
lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_ports_get_Count(
INetFwOpenPorts *iface,
LONG *count)
{
fw_ports *This = impl_from_INetFwOpenPorts( iface );
FIXME("%p, %p\n", This, count);
*count = 0;
return S_OK;
}
static HRESULT WINAPI fw_ports_Add(
INetFwOpenPorts *iface,
INetFwOpenPort *port)
{
fw_ports *This = impl_from_INetFwOpenPorts( iface );
FIXME("%p, %p\n", This, port);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_ports_Remove(
INetFwOpenPorts *iface,
LONG portNumber,
NET_FW_IP_PROTOCOL ipProtocol)
{
fw_ports *This = impl_from_INetFwOpenPorts( iface );
FIXME("%p, %d, %u\n", This, portNumber, ipProtocol);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_ports_Item(
INetFwOpenPorts *iface,
LONG portNumber,
NET_FW_IP_PROTOCOL ipProtocol,
INetFwOpenPort **openPort)
{
HRESULT hr;
fw_ports *This = impl_from_INetFwOpenPorts( iface );
FIXME("%p, %d, %u, %p\n", This, portNumber, ipProtocol, openPort);
hr = NetFwOpenPort_create( NULL, (void **)openPort );
if (SUCCEEDED(hr))
{
INetFwOpenPort_put_Protocol( *openPort, ipProtocol );
INetFwOpenPort_put_Port( *openPort, portNumber );
}
return hr;
}
static HRESULT WINAPI fw_ports_get__NewEnum(
INetFwOpenPorts *iface,
IUnknown **newEnum)
{
fw_ports *This = impl_from_INetFwOpenPorts( iface );
FIXME("%p, %p\n", This, newEnum);
return E_NOTIMPL;
}
static const struct INetFwOpenPortsVtbl fw_ports_vtbl =
{
fw_ports_QueryInterface,
fw_ports_AddRef,
fw_ports_Release,
fw_ports_GetTypeInfoCount,
fw_ports_GetTypeInfo,
fw_ports_GetIDsOfNames,
fw_ports_Invoke,
fw_ports_get_Count,
fw_ports_Add,
fw_ports_Remove,
fw_ports_Item,
fw_ports_get__NewEnum
};
HRESULT NetFwOpenPorts_create( IUnknown *pUnkOuter, LPVOID *ppObj )
{
fw_ports *fp;
TRACE("(%p,%p)\n", pUnkOuter, ppObj);
fp = HeapAlloc( GetProcessHeap(), 0, sizeof(*fp) );
if (!fp) return E_OUTOFMEMORY;
fp->vtbl = &fw_ports_vtbl;
fp->refs = 1;
*ppObj = &fp->vtbl;
TRACE("returning iface %p\n", *ppObj);
return S_OK;
}
+4 -4
View File
@@ -261,8 +261,8 @@ static HRESULT WINAPI fw_profile_get_GloballyOpenPorts(
{
fw_profile *This = impl_from_INetFwProfile( iface );
FIXME("%p, %p\n", This, openPorts);
return E_NOTIMPL;
TRACE("%p, %p\n", This, openPorts);
return NetFwOpenPorts_create( NULL, (void **)openPorts );
}
static HRESULT WINAPI fw_profile_get_Services(
@@ -271,8 +271,8 @@ static HRESULT WINAPI fw_profile_get_Services(
{
fw_profile *This = impl_from_INetFwProfile( iface );
FIXME("%p, %p\n", This, Services);
return E_NOTIMPL;
TRACE("%p, %p\n", This, Services);
return NetFwServices_create( NULL, (void **)Services );
}
static HRESULT WINAPI fw_profile_get_AuthorizedApplications(
+2 -2
View File
@@ -400,7 +400,7 @@ static struct regsvr_interface const interface_list[] = {
};
/***********************************************************************
* DllRegisterServer (INETCOMM.@)
* DllRegisterServer (HNETCFG.@)
*/
HRESULT WINAPI DllRegisterServer(void)
{
@@ -415,7 +415,7 @@ HRESULT WINAPI DllRegisterServer(void)
}
/***********************************************************************
* DllUnregisterServer (INETCOMM.@)
* DllUnregisterServer (HNETCFG.@)
*/
HRESULT WINAPI DllUnregisterServer(void)
{
+479
View File
@@ -0,0 +1,479 @@
/*
* Copyright 2009 Hans Leidekker for CodeWeavers
*
* 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 "config.h"
#include <stdarg.h>
#include <stdio.h>
#define COBJMACROS
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
#include "ole2.h"
#include "netfw.h"
#include "wine/debug.h"
#include "wine/unicode.h"
#include "hnetcfg_private.h"
WINE_DEFAULT_DEBUG_CHANNEL(hnetcfg);
typedef struct fw_service
{
const INetFwServiceVtbl *vtbl;
LONG refs;
} fw_service;
static inline fw_service *impl_from_INetFwService( INetFwService *iface )
{
return (fw_service *)((char *)iface - FIELD_OFFSET( fw_service, vtbl ));
}
static ULONG WINAPI fw_service_AddRef(
INetFwService *iface )
{
fw_service *fw_service = impl_from_INetFwService( iface );
return InterlockedIncrement( &fw_service->refs );
}
static ULONG WINAPI fw_service_Release(
INetFwService *iface )
{
fw_service *fw_service = impl_from_INetFwService( iface );
LONG refs = InterlockedDecrement( &fw_service->refs );
if (!refs)
{
TRACE("destroying %p\n", fw_service);
HeapFree( GetProcessHeap(), 0, fw_service );
}
return refs;
}
static HRESULT WINAPI fw_service_QueryInterface(
INetFwService *iface,
REFIID riid,
void **ppvObject )
{
fw_service *This = impl_from_INetFwService( iface );
TRACE("%p %s %p\n", This, debugstr_guid( riid ), ppvObject );
if ( IsEqualGUID( riid, &IID_INetFwService ) ||
IsEqualGUID( riid, &IID_IDispatch ) ||
IsEqualGUID( riid, &IID_IUnknown ) )
{
*ppvObject = iface;
}
else
{
FIXME("interface %s not implemented\n", debugstr_guid(riid));
return E_NOINTERFACE;
}
INetFwService_AddRef( iface );
return S_OK;
}
static HRESULT WINAPI fw_service_GetTypeInfoCount(
INetFwService *iface,
UINT *pctinfo )
{
fw_service *This = impl_from_INetFwService( iface );
FIXME("%p %p\n", This, pctinfo);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_service_GetTypeInfo(
INetFwService *iface,
UINT iTInfo,
LCID lcid,
ITypeInfo **ppTInfo )
{
fw_service *This = impl_from_INetFwService( iface );
FIXME("%p %u %u %p\n", This, iTInfo, lcid, ppTInfo);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_service_GetIDsOfNames(
INetFwService *iface,
REFIID riid,
LPOLESTR *rgszNames,
UINT cNames,
LCID lcid,
DISPID *rgDispId )
{
fw_service *This = impl_from_INetFwService( iface );
FIXME("%p %s %p %u %u %p\n", This, debugstr_guid(riid), rgszNames, cNames, lcid, rgDispId);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_service_Invoke(
INetFwService *iface,
DISPID dispIdMember,
REFIID riid,
LCID lcid,
WORD wFlags,
DISPPARAMS *pDispParams,
VARIANT *pVarResult,
EXCEPINFO *pExcepInfo,
UINT *puArgErr )
{
fw_service *This = impl_from_INetFwService( iface );
FIXME("%p %d %s %d %d %p %p %p %p\n", This, dispIdMember, debugstr_guid(riid),
lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_service_get_Name(
INetFwService *iface,
BSTR *name )
{
fw_service *This = impl_from_INetFwService( iface );
FIXME("%p %p\n", This, name);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_service_get_Type(
INetFwService *iface,
NET_FW_SERVICE_TYPE *type )
{
fw_service *This = impl_from_INetFwService( iface );
FIXME("%p %p\n", This, type);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_service_get_Customized(
INetFwService *iface,
VARIANT_BOOL *customized )
{
fw_service *This = impl_from_INetFwService( iface );
FIXME("%p %p\n", This, customized);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_service_get_IpVersion(
INetFwService *iface,
NET_FW_IP_VERSION *ipVersion )
{
fw_service *This = impl_from_INetFwService( iface );
FIXME("%p %p\n", This, ipVersion);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_service_put_IpVersion(
INetFwService *iface,
NET_FW_IP_VERSION ipVersion )
{
fw_service *This = impl_from_INetFwService( iface );
FIXME("%p %u\n", This, ipVersion);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_service_get_Scope(
INetFwService *iface,
NET_FW_SCOPE *scope )
{
fw_service *This = impl_from_INetFwService( iface );
FIXME("%p %p\n", This, scope);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_service_put_Scope(
INetFwService *iface,
NET_FW_SCOPE scope )
{
fw_service *This = impl_from_INetFwService( iface );
FIXME("%p %u\n", This, scope);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_service_get_RemoteAddresses(
INetFwService *iface,
BSTR *remoteAddrs )
{
fw_service *This = impl_from_INetFwService( iface );
FIXME("%p %p\n", This, remoteAddrs);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_service_put_RemoteAddresses(
INetFwService *iface,
BSTR remoteAddrs )
{
fw_service *This = impl_from_INetFwService( iface );
FIXME("%p %s\n", This, debugstr_w(remoteAddrs));
return E_NOTIMPL;
}
static HRESULT WINAPI fw_service_get_Enabled(
INetFwService *iface,
VARIANT_BOOL *enabled )
{
fw_service *This = impl_from_INetFwService( iface );
FIXME("%p %p\n", This, enabled);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_service_put_Enabled(
INetFwService *iface,
VARIANT_BOOL enabled )
{
fw_service *This = impl_from_INetFwService( iface );
FIXME("%p %d\n", This, enabled);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_service_get_GloballyOpenPorts(
INetFwService *iface,
INetFwOpenPorts **openPorts )
{
fw_service *This = impl_from_INetFwService( iface );
TRACE("%p %p\n", This, openPorts);
return NetFwOpenPorts_create( NULL, (void **)openPorts );
}
static const struct INetFwServiceVtbl fw_service_vtbl =
{
fw_service_QueryInterface,
fw_service_AddRef,
fw_service_Release,
fw_service_GetTypeInfoCount,
fw_service_GetTypeInfo,
fw_service_GetIDsOfNames,
fw_service_Invoke,
fw_service_get_Name,
fw_service_get_Type,
fw_service_get_Customized,
fw_service_get_IpVersion,
fw_service_put_IpVersion,
fw_service_get_Scope,
fw_service_put_Scope,
fw_service_get_RemoteAddresses,
fw_service_put_RemoteAddresses,
fw_service_get_Enabled,
fw_service_put_Enabled,
fw_service_get_GloballyOpenPorts
};
static HRESULT NetFwService_create( IUnknown *pUnkOuter, LPVOID *ppObj )
{
fw_service *fp;
TRACE("(%p,%p)\n", pUnkOuter, ppObj);
fp = HeapAlloc( GetProcessHeap(), 0, sizeof(*fp) );
if (!fp) return E_OUTOFMEMORY;
fp->vtbl = &fw_service_vtbl;
fp->refs = 1;
*ppObj = &fp->vtbl;
TRACE("returning iface %p\n", *ppObj);
return S_OK;
}
typedef struct fw_services
{
const INetFwServicesVtbl *vtbl;
LONG refs;
} fw_services;
static inline fw_services *impl_from_INetFwServices( INetFwServices *iface )
{
return (fw_services *)((char *)iface - FIELD_OFFSET( fw_services, vtbl ));
}
static ULONG WINAPI fw_services_AddRef(
INetFwServices *iface )
{
fw_services *fw_services = impl_from_INetFwServices( iface );
return InterlockedIncrement( &fw_services->refs );
}
static ULONG WINAPI fw_services_Release(
INetFwServices *iface )
{
fw_services *fw_services = impl_from_INetFwServices( iface );
LONG refs = InterlockedDecrement( &fw_services->refs );
if (!refs)
{
TRACE("destroying %p\n", fw_services);
HeapFree( GetProcessHeap(), 0, fw_services );
}
return refs;
}
static HRESULT WINAPI fw_services_QueryInterface(
INetFwServices *iface,
REFIID riid,
void **ppvObject )
{
fw_services *This = impl_from_INetFwServices( iface );
TRACE("%p %s %p\n", This, debugstr_guid( riid ), ppvObject );
if ( IsEqualGUID( riid, &IID_INetFwServices ) ||
IsEqualGUID( riid, &IID_IDispatch ) ||
IsEqualGUID( riid, &IID_IUnknown ) )
{
*ppvObject = iface;
}
else
{
FIXME("interface %s not implemented\n", debugstr_guid(riid));
return E_NOINTERFACE;
}
INetFwServices_AddRef( iface );
return S_OK;
}
static HRESULT WINAPI fw_services_GetTypeInfoCount(
INetFwServices *iface,
UINT *pctinfo )
{
fw_services *This = impl_from_INetFwServices( iface );
FIXME("%p %p\n", This, pctinfo);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_services_GetTypeInfo(
INetFwServices *iface,
UINT iTInfo,
LCID lcid,
ITypeInfo **ppTInfo )
{
fw_services *This = impl_from_INetFwServices( iface );
FIXME("%p %u %u %p\n", This, iTInfo, lcid, ppTInfo);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_services_GetIDsOfNames(
INetFwServices *iface,
REFIID riid,
LPOLESTR *rgszNames,
UINT cNames,
LCID lcid,
DISPID *rgDispId )
{
fw_services *This = impl_from_INetFwServices( iface );
FIXME("%p %s %p %u %u %p\n", This, debugstr_guid(riid), rgszNames, cNames, lcid, rgDispId);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_services_Invoke(
INetFwServices *iface,
DISPID dispIdMember,
REFIID riid,
LCID lcid,
WORD wFlags,
DISPPARAMS *pDispParams,
VARIANT *pVarResult,
EXCEPINFO *pExcepInfo,
UINT *puArgErr )
{
fw_services *This = impl_from_INetFwServices( iface );
FIXME("%p %d %s %d %d %p %p %p %p\n", This, dispIdMember, debugstr_guid(riid),
lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
return E_NOTIMPL;
}
static HRESULT WINAPI fw_services_get_Count(
INetFwServices *iface,
LONG *count )
{
fw_services *This = impl_from_INetFwServices( iface );
FIXME("%p, %p\n", This, count);
*count = 0;
return S_OK;
}
static HRESULT WINAPI fw_services_Item(
INetFwServices *iface,
NET_FW_SERVICE_TYPE svcType,
INetFwService **service )
{
fw_services *This = impl_from_INetFwServices( iface );
FIXME("%p, %u, %p\n", This, svcType, service);
return NetFwService_create( NULL, (void **)service );
}
static HRESULT WINAPI fw_services_get__NewEnum(
INetFwServices *iface,
IUnknown **newEnum )
{
fw_services *This = impl_from_INetFwServices( iface );
FIXME("%p, %p\n", This, newEnum);
return E_NOTIMPL;
}
static const struct INetFwServicesVtbl fw_services_vtbl =
{
fw_services_QueryInterface,
fw_services_AddRef,
fw_services_Release,
fw_services_GetTypeInfoCount,
fw_services_GetTypeInfo,
fw_services_GetIDsOfNames,
fw_services_Invoke,
fw_services_get_Count,
fw_services_Item,
fw_services_get__NewEnum
};
HRESULT NetFwServices_create( IUnknown *pUnkOuter, LPVOID *ppObj )
{
fw_services *fp;
TRACE("(%p,%p)\n", pUnkOuter, ppObj);
fp = HeapAlloc( GetProcessHeap(), 0, sizeof(*fp) );
if (!fp) return E_OUTOFMEMORY;
fp->vtbl = &fw_services_vtbl;
fp->refs = 1;
*ppObj = &fp->vtbl;
TRACE("returning iface %p\n", *ppObj);
return S_OK;
}
+2 -2
View File
@@ -1,4 +1,4 @@
@ stub DllInstall
@ stub DllRegisterServer
@ stub DllUnregisterServer
@ stdcall -private DllRegisterServer()
@ stdcall -private DllUnregisterServer()
@ stub InitializePKI
+18
View File
@@ -44,3 +44,21 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
}
return TRUE;
}
/*****************************************************
* DllRegisterServer (INITPKI.@)
*/
HRESULT WINAPI DllRegisterServer(void)
{
FIXME("Not implemented.\n");
return E_UNEXPECTED;
}
/*****************************************************
* DllUnregisterServer (INITPKI.@)
*/
HRESULT WINAPI DllUnregisterServer(void)
{
FIXME("Not implemented.\n");
return E_UNEXPECTED;
}
+2 -2
View File
@@ -324,7 +324,7 @@
@ stdcall GetConsoleMode(long ptr)
@ stdcall GetConsoleNlsMode(long ptr)
@ stdcall GetConsoleOutputCP()
@ stub GetConsoleProcessList ; missing in XP SP3
@ stdcall GetConsoleProcessList(ptr long) ; missing in XP SP3
@ stdcall GetConsoleScreenBufferInfo(long ptr)
@ stdcall GetConsoleSelectionInfo(ptr)
@ stdcall GetConsoleTitleA(ptr long)
@@ -732,7 +732,7 @@
@ stdcall RegisterConsoleIME(ptr ptr)
@ stdcall RegisterConsoleOS2(long)
@ stdcall RegisterConsoleVDM(long long long long long long long long long long long)
@ stub RegisterServiceProcess ; missing in XP SP3
;@ stub RegisterServiceProcess ; missing in XP SP3
@ stub RegisterSysMsgHandler ; missing in XP SP3
@ stdcall RegisterWaitForInputIdle(ptr)
@ stdcall RegisterWaitForSingleObject(ptr long ptr ptr long long)
+103 -75
View File
@@ -19,16 +19,17 @@
#define NDEBUG
#include <debug.h>
extern BOOL WINAPI DefaultConsoleCtrlHandler(DWORD Event);
extern __declspec(noreturn) VOID CALLBACK ConsoleControlDispatcher(DWORD CodeAndFlag);
extern RTL_CRITICAL_SECTION ConsoleLock;
extern BOOL ConsoleInitialized;
extern BOOL WINAPI IsDebuggerPresent(VOID);
/* GLOBALS *******************************************************************/
static PHANDLER_ROUTINE* CtrlHandlers = NULL;
static ULONG NrCtrlHandlers = 0;
PHANDLER_ROUTINE InitialHandler[1];
PHANDLER_ROUTINE* CtrlHandlers;
ULONG NrCtrlHandlers;
ULONG NrAllocatedHandlers;
#define INPUTEXENAME_BUFLEN 256
static WCHAR InputExeName[INPUTEXENAME_BUFLEN] = L"";
@@ -38,6 +39,7 @@ BOOL
WINAPI
DefaultConsoleCtrlHandler(DWORD Event)
{
DPRINT("Default handler called: %lx\n", Event);
switch(Event)
{
case CTRL_C_EVENT:
@@ -61,11 +63,10 @@ DefaultConsoleCtrlHandler(DWORD Event)
break;
}
ExitProcess(0);
ExitProcess(CONTROL_C_EXIT);
return TRUE;
}
__declspec(noreturn)
VOID
CALLBACK
@@ -74,7 +75,9 @@ ConsoleControlDispatcher(DWORD CodeAndFlag)
DWORD nExitCode = 0;
DWORD nCode = CodeAndFlag & MAXLONG;
UINT i;
EXCEPTION_RECORD erException;
DPRINT("Console Dispatcher Active: %lx %lx\n", CodeAndFlag, nCode);
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_HIGHEST);
switch(nCode)
@@ -82,51 +85,78 @@ ConsoleControlDispatcher(DWORD CodeAndFlag)
case CTRL_C_EVENT:
case CTRL_BREAK_EVENT:
{
if(IsDebuggerPresent())
if (IsDebuggerPresent())
{
EXCEPTION_RECORD erException;
erException.ExceptionCode =
(nCode == CTRL_C_EVENT ? DBG_CONTROL_C : DBG_CONTROL_BREAK);
erException.ExceptionCode = (nCode == CTRL_C_EVENT ?
DBG_CONTROL_C : DBG_CONTROL_BREAK);
erException.ExceptionFlags = 0;
erException.ExceptionRecord = NULL;
erException.ExceptionAddress = &DefaultConsoleCtrlHandler;
erException.ExceptionAddress = DefaultConsoleCtrlHandler;
erException.NumberParameters = 0;
RtlRaiseException(&erException);
_SEH2_TRY
{
RtlRaiseException(&erException);
}
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{
RtlEnterCriticalSection(&ConsoleLock);
if ((nCode != CTRL_C_EVENT) ||
(NtCurrentPeb()->ProcessParameters->ConsoleFlags != 1))
{
for (i = NrCtrlHandlers; i > 0; i--)
{
if (CtrlHandlers[i - 1](nCode)) break;
}
}
RtlLeaveCriticalSection(&ConsoleLock);
}
_SEH2_END;
ExitThread(0);
}
if (!ConsoleInitialized) ExitThread(0);
RtlEnterCriticalSection(&ConsoleLock);
if (!(nCode == CTRL_C_EVENT &&
NtCurrentPeb()->ProcessParameters->ConsoleFlags & 1))
{
for(i = NrCtrlHandlers; i > 0; -- i)
if(CtrlHandlers[i - 1](nCode)) break;
}
RtlLeaveCriticalSection(&ConsoleLock);
ExitThread(0);
break;
}
case CTRL_CLOSE_EVENT:
case CTRL_LOGOFF_EVENT:
case CTRL_SHUTDOWN_EVENT:
break;
case 3:
ExitThread(0);
break;
case 4:
ExitProcess(CONTROL_C_EXIT);
break;
default: ExitThread(0);
default:
ASSERT(FALSE);
break;
}
if (!ConsoleInitialized) ExitThread(0);
ASSERT(ConsoleInitialized);
RtlEnterCriticalSection(&ConsoleLock);
if (!(nCode == CTRL_C_EVENT &&
NtCurrentPeb()->ProcessParameters->ConsoleFlags & 1))
nExitCode = 0;
if ((nCode != CTRL_C_EVENT) || (NtCurrentPeb()->ProcessParameters->ConsoleFlags != 1))
{
i = NrCtrlHandlers;
while (i > 0)
for (i = NrCtrlHandlers; i > 0; i--)
{
if (i == 1 && (CodeAndFlag & MINLONG) &&
(nCode == CTRL_LOGOFF_EVENT || nCode == CTRL_SHUTDOWN_EVENT))
if ((i == 1) &&
(CodeAndFlag & MINLONG) &&
((nCode == CTRL_LOGOFF_EVENT) || (nCode == CTRL_SHUTDOWN_EVENT)))
{
DPRINT("Skipping system/service apps\n");
break;
}
if (CtrlHandlers[i - 1](nCode))
{
@@ -135,13 +165,15 @@ ConsoleControlDispatcher(DWORD CodeAndFlag)
case CTRL_CLOSE_EVENT:
case CTRL_LOGOFF_EVENT:
case CTRL_SHUTDOWN_EVENT:
case 3:
nExitCode = CodeAndFlag;
break;
}
break;
}
--i;
}
}
RtlLeaveCriticalSection(&ConsoleLock);
ExitThread(nExitCode);
}
@@ -3235,38 +3267,37 @@ static
BOOL
AddConsoleCtrlHandler(PHANDLER_ROUTINE HandlerRoutine)
{
PHANDLER_ROUTINE* NewCtrlHandlers = NULL;
if (HandlerRoutine == NULL)
{
NtCurrentPeb()->ProcessParameters->ConsoleFlags = TRUE;
return(TRUE);
return TRUE;
}
else
if (NrCtrlHandlers == NrAllocatedHandlers)
{
NrCtrlHandlers++;
if (CtrlHandlers == NULL)
NewCtrlHandlers = RtlAllocateHeap(RtlGetProcessHeap(),
0,
(NrCtrlHandlers + 4) * sizeof(PHANDLER_ROUTINE));
if (NewCtrlHandlers == NULL)
{
CtrlHandlers = RtlAllocateHeap(RtlGetProcessHeap(),
HEAP_ZERO_MEMORY,
NrCtrlHandlers * sizeof(PHANDLER_ROUTINE));
}
else
{
CtrlHandlers = RtlReAllocateHeap(RtlGetProcessHeap(),
HEAP_ZERO_MEMORY,
(PVOID)CtrlHandlers,
NrCtrlHandlers * sizeof(PHANDLER_ROUTINE));
}
if (CtrlHandlers == NULL)
{
NrCtrlHandlers = 0;
SetLastError(ERROR_NOT_ENOUGH_MEMORY);
return FALSE;
}
CtrlHandlers[NrCtrlHandlers - 1] = HandlerRoutine;
return TRUE;
memmove(NewCtrlHandlers, CtrlHandlers, sizeof(PHANDLER_ROUTINE) * NrCtrlHandlers);
if (NrAllocatedHandlers > 1) RtlFreeHeap(RtlGetProcessHeap(), 0, CtrlHandlers);
CtrlHandlers = NewCtrlHandlers;
NrAllocatedHandlers += 4;
}
ASSERT(NrCtrlHandlers < NrAllocatedHandlers);
CtrlHandlers[NrCtrlHandlers++] = HandlerRoutine;
return TRUE;
}
@@ -3279,30 +3310,27 @@ RemoveConsoleCtrlHandler(PHANDLER_ROUTINE HandlerRoutine)
if (HandlerRoutine == NULL)
{
NtCurrentPeb()->ProcessParameters->ConsoleFlags = FALSE;
return(TRUE);
return TRUE;
}
else
{
for (i = 0; i < NrCtrlHandlers; i++)
{
if ( ((void*)(CtrlHandlers[i])) == (void*)HandlerRoutine)
{
NrCtrlHandlers--;
memmove(CtrlHandlers + i,
CtrlHandlers + i + 1,
(NrCtrlHandlers - i) * sizeof(PHANDLER_ROUTINE));
CtrlHandlers = RtlReAllocateHeap(RtlGetProcessHeap(),
HEAP_ZERO_MEMORY,
(PVOID)CtrlHandlers,
NrCtrlHandlers * sizeof(PHANDLER_ROUTINE));
return(TRUE);
for (i = 0; i < NrCtrlHandlers; i++)
{
if (CtrlHandlers[i] == HandlerRoutine)
{
if (i < (NrCtrlHandlers - 1))
{
memmove(&CtrlHandlers[i],
&CtrlHandlers[i+1],
(NrCtrlHandlers - i + 1) * sizeof(PHANDLER_ROUTINE));
}
NrCtrlHandlers--;
return TRUE;
}
}
SetLastError(ERROR_INVALID_PARAMETER);
return(FALSE);
return FALSE;
}
+41 -33
View File
@@ -41,7 +41,10 @@ RTL_CRITICAL_SECTION ConsoleLock;
extern BOOL WINAPI DefaultConsoleCtrlHandler(DWORD Event);
extern __declspec(noreturn) VOID CALLBACK ConsoleControlDispatcher(DWORD CodeAndFlag);
extern PHANDLER_ROUTINE InitialHandler[1];
extern PHANDLER_ROUTINE* CtrlHandlers;
extern ULONG NrCtrlHandlers;
extern ULONG NrAllocatedHandlers;
extern BOOL FASTCALL NlsInit(VOID);
extern VOID FASTCALL NlsUninit(VOID);
BOOLEAN InWindows = FALSE;
@@ -125,6 +128,7 @@ BasepInitConsole(VOID)
CSR_API_MESSAGE Request;
ULONG CsrRequest;
NTSTATUS Status;
BOOLEAN NotConsole = FALSE;
PRTL_USER_PROCESS_PARAMETERS Parameters = NtCurrentPeb()->ProcessParameters;
WCHAR lpTest[MAX_PATH];
@@ -140,46 +144,51 @@ BasepInitConsole(VOID)
{
DPRINT("Image is not a console application\n");
Parameters->ConsoleHandle = NULL;
return TRUE;
}
/* Assume one is needed */
Request.Data.AllocConsoleRequest.ConsoleNeeded = TRUE;
/* Handle the special flags given to us by BasepInitializeEnvironment */
if (Parameters->ConsoleHandle == HANDLE_DETACHED_PROCESS)
{
/* No console to create */
DPRINT("No console to create\n");
Parameters->ConsoleHandle = NULL;
Request.Data.AllocConsoleRequest.ConsoleNeeded = FALSE;
}
else if (Parameters->ConsoleHandle == HANDLE_CREATE_NEW_CONSOLE)
{
/* We'll get the real one soon */
DPRINT("Creating new console\n");
Parameters->ConsoleHandle = NULL;
}
else if (Parameters->ConsoleHandle == HANDLE_CREATE_NO_WINDOW)
{
/* We'll get the real one soon */
DPRINT1("NOT SUPPORTED: HANDLE_CREATE_NO_WINDOW\n");
Parameters->ConsoleHandle = NULL;
}
else
{
if (Parameters->ConsoleHandle == INVALID_HANDLE_VALUE)
/* Assume one is needed */
Request.Data.AllocConsoleRequest.ConsoleNeeded = TRUE;
/* Handle the special flags given to us by BasepInitializeEnvironment */
if (Parameters->ConsoleHandle == HANDLE_DETACHED_PROCESS)
{
Parameters->ConsoleHandle = 0;
/* No console to create */
DPRINT("No console to create\n");
Parameters->ConsoleHandle = NULL;
Request.Data.AllocConsoleRequest.ConsoleNeeded = FALSE;
}
else if (Parameters->ConsoleHandle == HANDLE_CREATE_NEW_CONSOLE)
{
/* We'll get the real one soon */
DPRINT("Creating new console\n");
Parameters->ConsoleHandle = NULL;
}
else if (Parameters->ConsoleHandle == HANDLE_CREATE_NO_WINDOW)
{
/* We'll get the real one soon */
DPRINT1("NOT SUPPORTED: HANDLE_CREATE_NO_WINDOW\n");
Parameters->ConsoleHandle = NULL;
}
else
{
if (Parameters->ConsoleHandle == INVALID_HANDLE_VALUE)
{
Parameters->ConsoleHandle = 0;
}
DPRINT("Using existing console: %x\n", Parameters->ConsoleHandle);
}
DPRINT("Using existing console: %x\n", Parameters->ConsoleHandle);
}
/* Initialize Console Ctrl Handler */
ConsoleInitialized = TRUE;
RtlInitializeCriticalSection(&ConsoleLock);
SetConsoleCtrlHandler(DefaultConsoleCtrlHandler, TRUE);
NrAllocatedHandlers = 1;
NrCtrlHandlers = 1;
CtrlHandlers = InitialHandler;
CtrlHandlers[0] = DefaultConsoleCtrlHandler;
/* Now use the proper console handle */
Request.Data.AllocConsoleRequest.Console = Parameters->ConsoleHandle;
@@ -188,9 +197,6 @@ BasepInitConsole(VOID)
* but we don't have one yet, so we will instead simply send a create
* console message to the Base Server. When we finally have a Console
* Server, this code should be changed to send connection data instead.
*
* Also note that this connection should be made for any console app, even
* in the case above where -we- return.
*/
CsrRequest = MAKE_CSR_API(ALLOC_CONSOLE, CSR_CONSOLE);
Request.Data.AllocConsoleRequest.CtrlDispatcher = ConsoleControlDispatcher;
@@ -204,6 +210,8 @@ BasepInitConsole(VOID)
/* We're lying here, so at least the process can load... */
return TRUE;
}
if (NotConsole) return TRUE;
/* We got the handles, let's set them */
if ((Parameters->ConsoleHandle = Request.Data.AllocConsoleRequest.Console))
+51 -14
View File
@@ -110,7 +110,38 @@ BasepNotifyCsrOfCreation(ULONG dwCreationFlags,
return CsrRequest.Status;
}
/* REturn Success */
/* Return Success */
return STATUS_SUCCESS;
}
NTSTATUS
WINAPI
BasepNotifyCsrOfThread(IN HANDLE ThreadHandle,
IN PCLIENT_ID ClientId)
{
ULONG Request = CREATE_THREAD;
CSR_API_MESSAGE CsrRequest;
NTSTATUS Status;
DPRINT("BasepNotifyCsrOfThread: Thread: %lx, Handle %lx\n",
ClientId->UniqueThread, ThreadHandle);
/* Fill out the request */
CsrRequest.Data.CreateThreadRequest.ClientId = *ClientId;
CsrRequest.Data.CreateThreadRequest.ThreadHandle = ThreadHandle;
/* Call CSR */
Status = CsrClientCallServer(&CsrRequest,
NULL,
MAKE_CSR_API(Request, CSR_NATIVE),
sizeof(CSR_API_MESSAGE));
if (!NT_SUCCESS(Status) || !NT_SUCCESS(CsrRequest.Status))
{
DPRINT1("Failed to tell csrss about new thread\n");
return CsrRequest.Status;
}
/* Return Success */
return STATUS_SUCCESS;
}
@@ -164,7 +195,13 @@ BasepCreateFirstThread(HANDLE ProcessHandle,
{
return NULL;
}
Status = BasepNotifyCsrOfThread(hThread, ClientId);
if (!NT_SUCCESS(Status))
{
ASSERT(FALSE);
}
/* Success */
return hThread;
}
@@ -1375,6 +1412,18 @@ GetAppName:
&RemoteParameters->StandardError);
}
/* Notify CSRSS */
Status = BasepNotifyCsrOfCreation(dwCreationFlags,
(HANDLE)ProcessBasicInfo.UniqueProcessId,
bInheritHandles);
if (!NT_SUCCESS(Status))
{
DPRINT1("CSR Notification Failed");
SetLastErrorByStatus(Status);
goto Cleanup;
}
/* Create the first thread */
DPRINT("Creating thread for process (EntryPoint = 0x%p)\n",
SectionImageInfo.TransferAddress);
@@ -1390,18 +1439,6 @@ GetAppName:
goto Cleanup;
}
/* Notify CSRSS */
Status = BasepNotifyCsrOfCreation(dwCreationFlags,
(HANDLE)ProcessBasicInfo.UniqueProcessId,
bInheritHandles);
if (!NT_SUCCESS(Status))
{
DPRINT1("CSR Notification Failed");
SetLastErrorByStatus(Status);
goto Cleanup;
}
if (!(dwCreationFlags & CREATE_SUSPENDED))
{
NtResumeThread(hThread, &Dummy);
+12 -2
View File
@@ -19,6 +19,11 @@
#define HIGH_PRIORITY 31
#define SXS_SUPPORT_FIXME
NTSTATUS
WINAPI
BasepNotifyCsrOfThread(IN HANDLE ThreadHandle,
IN PCLIENT_ID ClientId);
/* FUNCTIONS *****************************************************************/
static
LONG BaseThreadExceptionFilter(EXCEPTION_POINTERS * ExceptionInfo)
@@ -219,8 +224,13 @@ CreateRemoteThread(HANDLE hProcess,
DPRINT1("RtlAllocateActivationContextStack failed %x\n", Status);
}
/* FIXME: Notify CSR */
/* Notify CSR */
Status = BasepNotifyCsrOfThread(hThread, &ClientId);
if (!NT_SUCCESS(Status))
{
ASSERT(FALSE);
}
/* Success */
if(lpThreadId) *lpThreadId = (DWORD)ClientId.UniqueThread;
+7 -3
View File
@@ -36,17 +36,21 @@
#include "wine/wine_common_ver.rc"
#include "spl_En.rc"
#include "spl_Da.rc"
#include "spl_De.rc"
#include "spl_En.rc"
#include "spl_Fr.rc"
#include "spl_Ko.rc"
#include "spl_Nl.rc"
#include "spl_No.rc"
#include "spl_Pl.rc"
#include "spl_Pt.rc"
#include "spl_Sv.rc"
/* UTF-8 */
#include "spl_De.rc"
#include "spl_Es.rc"
#include "spl_Lt.rc"
#include "spl_Ro.rc"
#include "spl_Ru.rc"
#include "spl_Si.rc"
#include "spl_Sv.rc"
#include "spl_Zh.rc"
+1
View File
@@ -21,6 +21,7 @@
#ifndef __WINE_LOCALSPL_PRIVATE__
#define __WINE_LOCALSPL_PRIVATE__
#include <windef.h>
/* ## DLL-wide Globals ## */
extern HINSTANCE LOCALSPL_hInstance;
+571 -11
View File
@@ -103,14 +103,23 @@ static const WCHAR default_devmodeW[] = {'D','e','f','a','u','l','t',' ','D','e'
static const WCHAR dependent_filesW[] = {'D','e','p','e','n','d','e','n','t',' ','F','i','l','e','s',0};
static const WCHAR descriptionW[] = {'D','e','s','c','r','i','p','t','i','o','n',0};
static const WCHAR driverW[] = {'D','r','i','v','e','r',0};
static const WCHAR emptyW[] = {0};
static const WCHAR fmt_driversW[] = { 'S','y','s','t','e','m','\\',
'C','u', 'r','r','e','n','t','C','o','n','t','r','o','l','S','e','t','\\',
'c','o','n','t','r','o','l','\\',
'P','r','i','n','t','\\',
'E','n','v','i','r','o','n','m','e','n','t','s','\\',
'%','s','\\','D','r','i','v','e','r','s','%','s',0 };
static const WCHAR fmt_printprocessorsW[] = { 'S','y','s','t','e','m','\\',
'C','u', 'r','r','e','n','t','C','o','n','t','r','o','l','S','e','t','\\',
'C','o','n','t','r','o','l','\\',
'P','r','i','n','t','\\',
'E','n','v','i','r','o','n','m','e','n','t','s','\\','%','s','\\',
'P','r','i','n','t',' ','P','r','o','c','e','s','s','o','r','s',0 };
static const WCHAR hardwareidW[] = {'H','a','r','d','w','a','r','e','I','D',0};
static const WCHAR help_fileW[] = {'H','e','l','p',' ','F','i','l','e',0};
static const WCHAR ia64_envnameW[] = {'W','i','n','d','o','w','s',' ','I','A','6','4',0};
static const WCHAR ia64_subdirW[] = {'i','a','6','4',0};
static const WCHAR localportW[] = {'L','o','c','a','l',' ','P','o','r','t',0};
static const WCHAR locationW[] = {'L','o','c','a','t','i','o','n',0};
static const WCHAR manufacturerW[] = {'M','a','n','u','f','a','c','t','u','r','e','r',0};
@@ -132,6 +141,7 @@ static const WCHAR printersW[] = {'S','y','s','t','e','m','\\',
'P','r','i','n','t','\\',
'P','r','i','n','t','e','r','s',0};
static const WCHAR spooldriversW[] = {'\\','s','p','o','o','l','\\','d','r','i','v','e','r','s','\\',0};
static const WCHAR spoolprtprocsW[] = {'\\','s','p','o','o','l','\\','p','r','t','p','r','o','c','s','\\',0};
static const WCHAR version0_regpathW[] = {'\\','V','e','r','s','i','o','n','-','0',0};
static const WCHAR version0_subdirW[] = {'\\','0',0};
static const WCHAR version3_regpathW[] = {'\\','V','e','r','s','i','o','n','-','3',0};
@@ -144,6 +154,7 @@ static const WCHAR winnt_cv_portsW[] = {'S','o','f','t','w','a','r','e','\\',
'W','i','n','d','o','w','s',' ','N','T','\\',
'C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\',
'P','o','r','t','s',0};
static const WCHAR winprintW[] = {'w','i','n','p','r','i','n','t',0};
static const WCHAR x64_envnameW[] = {'W','i','n','d','o','w','s',' ','x','6','4',0};
static const WCHAR x64_subdirW[] = {'x','6','4',0};
static const WCHAR x86_envnameW[] = {'W','i','n','d','o','w','s',' ','N','T',' ','x','8','6',0};
@@ -152,6 +163,9 @@ static const WCHAR XcvMonitorW[] = {',','X','c','v','M','o','n','i','t','o','r',
static const WCHAR XcvPortW[] = {',','X','c','v','P','o','r','t',' ',0};
static const printenv_t env_ia64 = {ia64_envnameW, ia64_subdirW, 3,
version3_regpathW, version3_subdirW};
static const printenv_t env_x86 = {x86_envnameW, x86_subdirW, 3,
version3_regpathW, version3_subdirW};
@@ -161,7 +175,7 @@ static const printenv_t env_x64 = {x64_envnameW, x64_subdirW, 3,
static const printenv_t env_win40 = {win40_envnameW, win40_subdirW, 0,
version0_regpathW, version0_subdirW};
static const printenv_t * const all_printenv[] = {&env_x86, &env_x64, &env_win40};
static const printenv_t * const all_printenv[] = {&env_x86, &env_x64, &env_ia64, &env_win40};
static const DWORD di_sizeof[] = {0, sizeof(DRIVER_INFO_1W), sizeof(DRIVER_INFO_2W),
@@ -184,7 +198,7 @@ static LPWSTR strdupW(LPCWSTR p)
if(!p) return NULL;
len = (lstrlenW(p) + 1) * sizeof(WCHAR);
ret = heap_alloc(len);
memcpy(ret, p, len);
if (ret) memcpy(ret, p, len);
return ret;
}
@@ -345,7 +359,7 @@ static void monitor_unload(monitor_t * pm)
/******************************************************************
* monitor_unloadall [internal]
*
* release all printmonitors and unload them from memory, when needed
* release all registered printmonitors and unload them from memory, when needed
*
*/
@@ -358,7 +372,8 @@ static void monitor_unloadall(void)
/* iterate through the list, with safety against removal */
LIST_FOR_EACH_ENTRY_SAFE(pm, next, &monitor_handles, monitor_t, entry)
{
monitor_unload(pm);
/* skip monitorui dlls */
if (pm->monitor) monitor_unload(pm);
}
LeaveCriticalSection(&monitor_handles_cs);
}
@@ -556,6 +571,47 @@ static DWORD monitor_loadall(void)
return loaded;
}
/******************************************************************
* monitor_loadui [internal]
*
* load the userinterface-dll for a given portmonitor
*
* On failure, NULL is returned
*/
static monitor_t * monitor_loadui(monitor_t * pm)
{
monitor_t * pui = NULL;
WCHAR buffer[MAX_PATH];
HANDLE hXcv;
DWORD len;
DWORD res;
if (pm == NULL) return NULL;
TRACE("(%p) => dllname: %s\n", pm, debugstr_w(pm->dllname));
/* Try the Portmonitor first; works for many monitors */
if (pm->monitorUI) {
EnterCriticalSection(&monitor_handles_cs);
pm->refcount++;
LeaveCriticalSection(&monitor_handles_cs);
return pm;
}
/* query the userinterface-dllname from the Portmonitor */
if ((pm->monitor) && (pm->monitor->pfnXcvDataPort)) {
/* building (",XcvMonitor %s",pm->name) not needed yet */
res = pm->monitor->pfnXcvOpenPort(emptyW, SERVER_ACCESS_ADMINISTER, &hXcv);
TRACE("got %u with %p\n", res, hXcv);
if (res) {
res = pm->monitor->pfnXcvDataPort(hXcv, monitorUIW, NULL, 0, (BYTE *) buffer, sizeof(buffer), &len);
TRACE("got %u with %s\n", res, debugstr_w(buffer));
if (res == ERROR_SUCCESS) pui = monitor_load(NULL, buffer);
pm->monitor->pfnXcvClosePort(hXcv);
}
}
return pui;
}
/******************************************************************
* monitor_load_by_port [internal]
*
@@ -776,6 +832,92 @@ static DWORD get_local_monitors(DWORD level, LPBYTE pMonitors, DWORD cbBuf, LPDW
return needed;
}
/*****************************************************************************
* enumerate the local print processors (INTERNAL)
*
* returns the needed size (in bytes) for pPPInfo
* and *lpreturned is set to number of entries returned in pPPInfo
*
*/
static DWORD get_local_printprocessors(LPWSTR regpathW, LPBYTE pPPInfo, DWORD cbBuf, LPDWORD lpreturned)
{
HKEY hroot = NULL;
HKEY hentry = NULL;
LPWSTR ptr;
PPRINTPROCESSOR_INFO_1W ppi;
WCHAR buffer[MAX_PATH];
WCHAR dllname[MAX_PATH];
DWORD dllsize;
DWORD len;
DWORD index = 0;
DWORD needed = 0;
DWORD numentries;
numentries = *lpreturned; /* this is 0, when we scan the registry */
len = numentries * sizeof(PRINTPROCESSOR_INFO_1W);
ptr = (LPWSTR) &pPPInfo[len];
numentries = 0;
len = sizeof(buffer)/sizeof(buffer[0]);
buffer[0] = '\0';
if (RegCreateKeyW(HKEY_LOCAL_MACHINE, regpathW, &hroot) == ERROR_SUCCESS) {
/* add "winprint" first */
numentries++;
needed = sizeof(PRINTPROCESSOR_INFO_1W) + sizeof(winprintW);
if (pPPInfo && (cbBuf >= needed)){
ppi = (PPRINTPROCESSOR_INFO_1W) pPPInfo;
pPPInfo += sizeof(PRINTPROCESSOR_INFO_1W);
TRACE("%p: writing PRINTPROCESSOR_INFO_1W #%d\n", ppi, numentries);
ppi->pName = ptr;
lstrcpyW(ptr, winprintW); /* Name of the Print Processor */
ptr += sizeof(winprintW) / sizeof(WCHAR);
}
/* Scan all Printprocessor Keys */
while ((RegEnumKeyExW(hroot, index, buffer, &len, NULL, NULL, NULL, NULL) == ERROR_SUCCESS) &&
(lstrcmpiW(buffer, winprintW) != 0)) {
TRACE("PrintProcessor_%d: %s\n", numentries, debugstr_w(buffer));
dllsize = sizeof(dllname);
dllname[0] = '\0';
/* The Print Processor must have a Driver-DLL */
if (RegOpenKeyExW(hroot, buffer, 0, KEY_READ, &hentry) == ERROR_SUCCESS) {
if (RegQueryValueExW(hentry, driverW, NULL, NULL, (LPBYTE) dllname, &dllsize) == ERROR_SUCCESS) {
/* We found a valid DLL for this Print Processor */
TRACE("using Driver: %s\n", debugstr_w(dllname));
}
RegCloseKey(hentry);
}
if (dllname[0]) {
numentries++;
needed += sizeof(PRINTPROCESSOR_INFO_1W);
needed += (len+1) * sizeof(WCHAR); /* len is lstrlenW(printprocessor name) */
/* required size is calculated. Now fill the user-buffer */
if (pPPInfo && (cbBuf >= needed)){
ppi = (PPRINTPROCESSOR_INFO_1W) pPPInfo;
pPPInfo += sizeof(PRINTPROCESSOR_INFO_1W);
TRACE("%p: writing PRINTPROCESSOR_INFO_1W #%d\n", ppi, numentries);
ppi->pName = ptr;
lstrcpyW(ptr, buffer); /* Name of the Print Processor */
ptr += (len+1); /* len is lstrlenW(printprosessor name) */
}
}
index++;
len = sizeof(buffer)/sizeof(buffer[0]);
buffer[0] = '\0';
}
RegCloseKey(hroot);
}
*lpreturned = numentries;
TRACE("need %d byte for %d entries\n", needed, numentries);
return needed;
}
/******************************************************************
* enumerate the local Ports from all loaded monitors (internal)
*
@@ -1152,7 +1294,6 @@ end:
*/
static BOOL myAddPrinterDriverEx(DWORD level, LPBYTE pDriverInfo, DWORD dwFileCopyFlags, BOOL lazy)
{
static const WCHAR emptyW[1];
const printenv_t *env;
apd_data_t apd;
DRIVER_INFO_8W di;
@@ -1415,6 +1556,136 @@ static BOOL WINAPI fpAddMonitor(LPWSTR pName, DWORD Level, LPBYTE pMonitors)
return (res);
}
/******************************************************************************
* fpAddPort [exported through PRINTPROVIDOR]
*
* Add a Port for a specific Monitor
*
* PARAMS
* pName [I] Servername or NULL (local Computer)
* hWnd [I] Handle to parent Window for the Dialog-Box
* pMonitorName [I] Name of the Monitor that manage the Port
*
* RETURNS
* Success: TRUE
* Failure: FALSE
*
*/
static BOOL WINAPI fpAddPort(LPWSTR pName, HWND hWnd, LPWSTR pMonitorName)
{
monitor_t * pm;
monitor_t * pui;
LONG lres;
DWORD res;
TRACE("(%s, %p, %s)\n", debugstr_w(pName), hWnd, debugstr_w(pMonitorName));
lres = copy_servername_from_name(pName, NULL);
if (lres) {
FIXME("server %s not supported\n", debugstr_w(pName));
SetLastError(ERROR_INVALID_PARAMETER);
return FALSE;
}
/* an empty Monitorname is Invalid */
if (!pMonitorName[0]) {
SetLastError(ERROR_NOT_SUPPORTED);
return FALSE;
}
pm = monitor_load(pMonitorName, NULL);
if (pm && pm->monitor && pm->monitor->pfnAddPort) {
res = pm->monitor->pfnAddPort(pName, hWnd, pMonitorName);
TRACE("got %d with %u (%s)\n", res, GetLastError(), debugstr_w(pm->dllname));
}
else
{
pui = monitor_loadui(pm);
if (pui && pui->monitorUI && pui->monitorUI->pfnAddPortUI) {
res = pui->monitorUI->pfnAddPortUI(pName, hWnd, pMonitorName, NULL);
TRACE("got %d with %u (%s)\n", res, GetLastError(), debugstr_w(pui->dllname));
}
else
{
FIXME("not implemented for %s (monitor %p: %s / monitorui %p: %s)\n",
debugstr_w(pMonitorName), pm, debugstr_w(pm ? pm->dllname : NULL),
pui, debugstr_w(pui ? pui->dllname : NULL));
SetLastError(ERROR_NOT_SUPPORTED);
res = FALSE;
}
monitor_unload(pui);
}
monitor_unload(pm);
TRACE("returning %d with %u\n", res, GetLastError());
return res;
}
/******************************************************************************
* fpAddPortEx [exported through PRINTPROVIDOR]
*
* Add a Port for a specific Monitor, without presenting a user interface
*
* PARAMS
* pName [I] Servername or NULL (local Computer)
* level [I] Structure-Level (1 or 2) for pBuffer
* pBuffer [I] PTR to: PORT_INFO_1 or PORT_INFO_2
* pMonitorName [I] Name of the Monitor that manage the Port
*
* RETURNS
* Success: TRUE
* Failure: FALSE
*
*/
static BOOL WINAPI fpAddPortEx(LPWSTR pName, DWORD level, LPBYTE pBuffer, LPWSTR pMonitorName)
{
PORT_INFO_2W * pi2;
monitor_t * pm;
DWORD lres;
DWORD res;
pi2 = (PORT_INFO_2W *) pBuffer;
TRACE("(%s, %d, %p, %s): %s %s %s\n", debugstr_w(pName), level, pBuffer,
debugstr_w(pMonitorName), debugstr_w(pi2 ? pi2->pPortName : NULL),
debugstr_w(((level > 1) && pi2) ? pi2->pMonitorName : NULL),
debugstr_w(((level > 1) && pi2) ? pi2->pDescription : NULL));
lres = copy_servername_from_name(pName, NULL);
if (lres) {
FIXME("server %s not supported\n", debugstr_w(pName));
SetLastError(ERROR_INVALID_PARAMETER);
return FALSE;
}
if ((level < 1) || (level > 2)) {
SetLastError(ERROR_INVALID_LEVEL);
return FALSE;
}
if ((!pi2) || (!pMonitorName) || (!pMonitorName[0])) {
SetLastError(ERROR_INVALID_PARAMETER);
return FALSE;
}
/* load the Monitor */
pm = monitor_load(pMonitorName, NULL);
if (pm && pm->monitor && pm->monitor->pfnAddPortEx) {
res = pm->monitor->pfnAddPortEx(pName, level, pBuffer, pMonitorName);
TRACE("got %d with %u (%s)\n", res, GetLastError(), debugstr_w(pm->dllname));
}
else
{
FIXME("not implemented for %s (monitor %p: %s)\n",
debugstr_w(pMonitorName), pm, pm ? debugstr_w(pm->dllname) : NULL);
SetLastError(ERROR_INVALID_PARAMETER);
res = FALSE;
}
monitor_unload(pm);
return res;
}
/******************************************************************************
* fpAddPrinterDriverEx [exported through PRINTPROVIDOR]
*
@@ -1476,6 +1747,75 @@ static BOOL WINAPI fpClosePrinter(HANDLE hPrinter)
return FALSE;
}
/******************************************************************************
* fpConfigurePort [exported through PRINTPROVIDOR]
*
* Display the Configuration-Dialog for a specific Port
*
* PARAMS
* pName [I] Servername or NULL (local Computer)
* hWnd [I] Handle to parent Window for the Dialog-Box
* pPortName [I] Name of the Port, that should be configured
*
* RETURNS
* Success: TRUE
* Failure: FALSE
*
*/
static BOOL WINAPI fpConfigurePort(LPWSTR pName, HWND hWnd, LPWSTR pPortName)
{
monitor_t * pm;
monitor_t * pui;
LONG lres;
DWORD res;
TRACE("(%s, %p, %s)\n", debugstr_w(pName), hWnd, debugstr_w(pPortName));
lres = copy_servername_from_name(pName, NULL);
if (lres) {
FIXME("server %s not supported\n", debugstr_w(pName));
SetLastError(ERROR_INVALID_NAME);
return FALSE;
}
/* an empty Portname is Invalid, but can popup a Dialog */
if (!pPortName[0]) {
SetLastError(ERROR_NOT_SUPPORTED);
return FALSE;
}
pm = monitor_load_by_port(pPortName);
if (pm && pm->monitor && pm->monitor->pfnConfigurePort) {
TRACE("use %s for %s (monitor %p: %s)\n", debugstr_w(pm->name),
debugstr_w(pPortName), pm, debugstr_w(pm->dllname));
res = pm->monitor->pfnConfigurePort(pName, hWnd, pPortName);
TRACE("got %d with %u\n", res, GetLastError());
}
else
{
pui = monitor_loadui(pm);
if (pui && pui->monitorUI && pui->monitorUI->pfnConfigurePortUI) {
TRACE("use %s for %s (monitorui %p: %s)\n", debugstr_w(pui->name),
debugstr_w(pPortName), pui, debugstr_w(pui->dllname));
res = pui->monitorUI->pfnConfigurePortUI(pName, hWnd, pPortName);
TRACE("got %d with %u\n", res, GetLastError());
}
else
{
FIXME("not implemented for %s (monitor %p: %s / monitorui %p: %s)\n",
debugstr_w(pPortName), pm, debugstr_w(pm ? pm->dllname : NULL),
pui, debugstr_w(pui ? pui->dllname : NULL));
SetLastError(ERROR_NOT_SUPPORTED);
res = FALSE;
}
monitor_unload(pui);
}
monitor_unload(pm);
TRACE("returning %d with %u\n", res, GetLastError());
return res;
}
/******************************************************************
* fpDeleteMonitor [exported through PRINTPROVIDOR]
@@ -1537,6 +1877,76 @@ static BOOL WINAPI fpDeleteMonitor(LPWSTR pName, LPWSTR pEnvironment, LPWSTR pMo
return FALSE;
}
/*****************************************************************************
* fpDeletePort [exported through PRINTPROVIDOR]
*
* Delete a specific Port
*
* PARAMS
* pName [I] Servername or NULL (local Computer)
* hWnd [I] Handle to parent Window for the Dialog-Box
* pPortName [I] Name of the Port, that should be deleted
*
* RETURNS
* Success: TRUE
* Failure: FALSE
*
*/
static BOOL WINAPI fpDeletePort(LPWSTR pName, HWND hWnd, LPWSTR pPortName)
{
monitor_t * pm;
monitor_t * pui;
LONG lres;
DWORD res;
TRACE("(%s, %p, %s)\n", debugstr_w(pName), hWnd, debugstr_w(pPortName));
lres = copy_servername_from_name(pName, NULL);
if (lres) {
FIXME("server %s not supported\n", debugstr_w(pName));
SetLastError(ERROR_INVALID_NAME);
return FALSE;
}
/* an empty Portname is Invalid */
if (!pPortName[0]) {
SetLastError(ERROR_NOT_SUPPORTED);
return FALSE;
}
pm = monitor_load_by_port(pPortName);
if (pm && pm->monitor && pm->monitor->pfnDeletePort) {
TRACE("use %s for %s (monitor %p: %s)\n", debugstr_w(pm->name),
debugstr_w(pPortName), pm, debugstr_w(pm->dllname));
res = pm->monitor->pfnDeletePort(pName, hWnd, pPortName);
TRACE("got %d with %u\n", res, GetLastError());
}
else
{
pui = monitor_loadui(pm);
if (pui && pui->monitorUI && pui->monitorUI->pfnDeletePortUI) {
TRACE("use %s for %s (monitorui %p: %s)\n", debugstr_w(pui->name),
debugstr_w(pPortName), pui, debugstr_w(pui->dllname));
res = pui->monitorUI->pfnDeletePortUI(pName, hWnd, pPortName);
TRACE("got %d with %u\n", res, GetLastError());
}
else
{
FIXME("not implemented for %s (monitor %p: %s / monitorui %p: %s)\n",
debugstr_w(pPortName), pm, debugstr_w(pm ? pm->dllname : NULL),
pui, debugstr_w(pui ? pui->dllname : NULL));
SetLastError(ERROR_NOT_SUPPORTED);
res = FALSE;
}
monitor_unload(pui);
}
monitor_unload(pm);
TRACE("returning %d with %u\n", res, GetLastError());
return res;
}
/*****************************************************************************
* fpEnumMonitors [exported through PRINTPROVIDOR]
*
@@ -1689,6 +2099,156 @@ emP_cleanup:
return (res);
}
/*****************************************************************************
* fpEnumPrintProcessors [exported through PRINTPROVIDOR]
*
* Enumerate available Print Processors
*
* PARAMS
* pName [I] Servername or NULL (local Computer)
* pEnvironment [I] Printing-Environment or NULL (Default)
* Level [I] Structure-Level (Only 1 is allowed)
* pPPInfo [O] PTR to Buffer that receives the Result
* cbBuf [I] Size of Buffer at pMonitors
* pcbNeeded [O] PTR to DWORD that receives the size in Bytes used / required for pPPInfo
* pcReturned [O] PTR to DWORD that receives the number of Print Processors in pPPInfo
*
* RETURNS
* Success: TRUE
* Failure: FALSE and in pcbNeeded the Bytes required for pPPInfo, if cbBuf is too small
*
*/
static BOOL WINAPI fpEnumPrintProcessors(LPWSTR pName, LPWSTR pEnvironment, DWORD Level,
LPBYTE pPPInfo, DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned)
{
const printenv_t * env;
LPWSTR regpathW = NULL;
DWORD numentries = 0;
DWORD needed = 0;
LONG lres;
BOOL res = FALSE;
TRACE("(%s, %s, %d, %p, %d, %p, %p)\n", debugstr_w(pName), debugstr_w(pEnvironment),
Level, pPPInfo, cbBuf, pcbNeeded, pcReturned);
lres = copy_servername_from_name(pName, NULL);
if (lres) {
FIXME("server %s not supported\n", debugstr_w(pName));
SetLastError(ERROR_INVALID_NAME);
goto epp_cleanup;
}
if (Level != 1) {
SetLastError(ERROR_INVALID_LEVEL);
goto epp_cleanup;
}
env = validate_envW(pEnvironment);
if (!env)
goto epp_cleanup; /* ERROR_INVALID_ENVIRONMENT */
regpathW = heap_alloc(sizeof(fmt_printprocessorsW) +
(lstrlenW(env->envname) * sizeof(WCHAR)));
if (!regpathW)
goto epp_cleanup;
wsprintfW(regpathW, fmt_printprocessorsW, env->envname);
/* Scan all Printprocessor-Keys */
numentries = 0;
needed = get_local_printprocessors(regpathW, NULL, 0, &numentries);
/* we calculated the needed buffersize. now do more error-checks */
if (cbBuf < needed) {
SetLastError(ERROR_INSUFFICIENT_BUFFER);
goto epp_cleanup;
}
/* fill the Buffer with the Printprocessor Infos */
needed = get_local_printprocessors(regpathW, pPPInfo, cbBuf, &numentries);
res = TRUE;
epp_cleanup:
heap_free(regpathW);
if (pcbNeeded) *pcbNeeded = needed;
if (pcReturned) *pcReturned = numentries;
TRACE("returning %d with %d (%d byte for %d entries)\n",
res, GetLastError(), needed, numentries);
return (res);
}
/******************************************************************************
* fpGetPrintProcessorDirectory [exported through PRINTPROVIDOR]
*
* Return the PATH for the Print-Processors
*
* PARAMS
* pName [I] Servername or NULL (this computer)
* pEnvironment [I] Printing-Environment or NULL (Default)
* level [I] Structure-Level (must be 1)
* pPPInfo [O] PTR to Buffer that receives the Result
* cbBuf [I] Size of Buffer at pPPInfo
* pcbNeeded [O] PTR to DWORD that receives the size in Bytes used / required for pPPInfo
*
* RETURNS
* Success: TRUE
* Failure: FALSE and in pcbNeeded the Bytes required for pPPInfo, if cbBuf is too small
*
* Native Values returned in pPPInfo on Success for this computer:
*| NT(Windows x64): "%winsysdir%\\spool\\PRTPROCS\\x64"
*| NT(Windows NT x86): "%winsysdir%\\spool\\PRTPROCS\\w32x86"
*| NT(Windows 4.0): "%winsysdir%\\spool\\PRTPROCS\\win40"
*
* "%winsysdir%" is the Value from GetSystemDirectoryW()
*
*/
static BOOL WINAPI fpGetPrintProcessorDirectory(LPWSTR pName, LPWSTR pEnvironment, DWORD level,
LPBYTE pPPInfo, DWORD cbBuf, LPDWORD pcbNeeded)
{
const printenv_t * env;
DWORD needed;
LONG lres;
TRACE("(%s, %s, %d, %p, %d, %p)\n", debugstr_w(pName), debugstr_w(pEnvironment),
level, pPPInfo, cbBuf, pcbNeeded);
*pcbNeeded = 0;
lres = copy_servername_from_name(pName, NULL);
if (lres) {
FIXME("server %s not supported\n", debugstr_w(pName));
SetLastError(RPC_S_SERVER_UNAVAILABLE);
return FALSE;
}
env = validate_envW(pEnvironment);
if (!env)
return FALSE; /* ERROR_INVALID_ENVIRONMENT */
/* GetSystemDirectoryW returns number of WCHAR including the '\0' */
needed = GetSystemDirectoryW(NULL, 0);
/* add the Size for the Subdirectories */
needed += lstrlenW(spoolprtprocsW);
needed += lstrlenW(env->subdir);
needed *= sizeof(WCHAR); /* return-value is size in Bytes */
*pcbNeeded = needed;
if (needed > cbBuf) {
SetLastError(ERROR_INSUFFICIENT_BUFFER);
return FALSE;
}
GetSystemDirectoryW((LPWSTR) pPPInfo, cbBuf/sizeof(WCHAR));
/* add the Subdirectories */
lstrcatW((LPWSTR) pPPInfo, spoolprtprocsW);
lstrcatW((LPWSTR) pPPInfo, env->subdir);
TRACE("==> %s\n", debugstr_w((LPWSTR) pPPInfo));
return TRUE;
}
/******************************************************************************
* fpOpenPrinter [exported through PRINTPROVIDOR]
*
@@ -1812,8 +2372,8 @@ void setup_provider(void)
fpGetPrinterDriverDirectory,
NULL, /* fpDeletePrinterDriver */
NULL, /* fpAddPrintProcessor */
NULL, /* fpEnumPrintProcessors */
NULL, /* fpGetPrintProcessorDirectory */
fpEnumPrintProcessors,
fpGetPrintProcessorDirectory,
NULL, /* fpDeletePrintProcessor */
NULL, /* fpEnumPrintProcessorDatatypes */
NULL, /* fpStartDocPrinter */
@@ -1836,9 +2396,9 @@ void setup_provider(void)
NULL, /* fpEnumForms */
fpEnumMonitors,
fpEnumPorts,
NULL, /* fpAddPort */
NULL, /* fpConfigurePort */
NULL, /* fpDeletePort */
fpAddPort,
fpConfigurePort,
fpDeletePort,
NULL, /* fpCreatePrinterIC */
NULL, /* fpPlayGdiScriptOnPrinterIC */
NULL, /* fpDeletePrinterIC */
@@ -1851,7 +2411,7 @@ void setup_provider(void)
NULL, /* fpGetPrinterDriverEx */
NULL, /* fpFindFirstPrinterChangeNotification */
NULL, /* fpFindClosePrinterChangeNotification */
NULL, /* fpAddPortEx */
fpAddPortEx,
NULL, /* fpShutDown */
NULL, /* fpRefreshPrinterChangeNotification */
NULL, /* fpOpenPrinterEx */
+3 -1
View File
@@ -18,7 +18,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
LANGUAGE LANG_DANISH, SUBLANG_DEFAULT
#include "localspl_private.h"
LANGUAGE LANG_DANISH, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
{
+4
View File
@@ -19,6 +19,10 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "localspl_private.h"
#pragma code_page(65001)
LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
+2
View File
@@ -19,6 +19,8 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "localspl_private.h"
LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
+32
View File
@@ -0,0 +1,32 @@
/*
* Spanish resources for localspl
*
* Copyright 2010 José Manuel Ferrer Ortiz
*
* 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 "localspl_private.h"
/* UTF-8 */
#pragma code_page(65001)
LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
{
IDS_LOCALPORT "Puerto local"
IDS_LOCALMONITOR "Monitor local"
}
+2
View File
@@ -18,6 +18,8 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "localspl_private.h"
LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
+2
View File
@@ -20,6 +20,8 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "localspl_private.h"
LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
+32
View File
@@ -0,0 +1,32 @@
/*
* Lithuanian resources for localspl
*
* Copyright 2009 Aurimas Fišeras <[email protected]>
*
* 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 "localspl_private.h"
/* UTF-8 */
#pragma code_page(65001)
LANGUAGE LANG_LITHUANIAN, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
{
IDS_LOCALPORT "Vietinis prievadas"
IDS_LOCALMONITOR "Vietinis monitorius"
}
+2
View File
@@ -18,6 +18,8 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "localspl_private.h"
LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
+2
View File
@@ -18,6 +18,8 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "localspl_private.h"
LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL
STRINGTABLE DISCARDABLE
+2
View File
@@ -20,6 +20,8 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "localspl_private.h"
LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE

Some files were not shown because too many files have changed in this diff Show More