mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-08-28 19:26:16 +00:00
Sync with trunk head
svn path=/branches/header-work/; revision=46148
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
|
||||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
//#define GET_IF_ENTRY2_IMPLEMENTED 1
|
||||
|
||||
DWORD _RpcOpenHandle(
|
||||
wchar_t *arg_1,
|
||||
|
||||
@@ -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}
|
||||
};
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
+997
-12
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
{
|
||||
|
||||
@@ -52,4 +52,3 @@ STRINGTABLE DISCARDABLE
|
||||
IDS_AVIFILETYPE "Wine AVI-Standard-Dateibehandlungsroutine"
|
||||
IDS_UNCOMPRESSED "Unkomprimiert"
|
||||
}
|
||||
#pragma code_page(default)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -53,5 +53,3 @@ STRINGTABLE DISCARDABLE
|
||||
IDS_AVIFILETYPE "Wine AVI-default-filehandler"
|
||||
IDS_UNCOMPRESSED "未圧縮"
|
||||
}
|
||||
|
||||
#pragma code_page(default)
|
||||
|
||||
@@ -53,4 +53,3 @@ STRINGTABLE DISCARDABLE
|
||||
IDS_AVIFILETYPE "Wine numatyta-AVI-doroklė"
|
||||
IDS_UNCOMPRESSED "neglaudintas"
|
||||
}
|
||||
#pragma code_page(default)
|
||||
|
||||
@@ -55,4 +55,3 @@ STRINGTABLE DISCARDABLE
|
||||
IDS_AVIFILETYPE "Tratare implicită Wine pentru AVI"
|
||||
IDS_UNCOMPRESSED "necomprimat"
|
||||
}
|
||||
#pragma code_page(default)
|
||||
|
||||
@@ -55,4 +55,3 @@ STRINGTABLE DISCARDABLE
|
||||
IDS_AVIFILETYPE "Обработчик по умолчанию avi-файлов в Wine"
|
||||
IDS_UNCOMPRESSED "без сжатия"
|
||||
}
|
||||
#pragma code_page(default)
|
||||
|
||||
@@ -52,5 +52,3 @@ STRINGTABLE DISCARDABLE
|
||||
IDS_AVIFILETYPE "Wine privzeti-upravljalec-AVI-datotek"
|
||||
IDS_UNCOMPRESSED "nestisnjeno"
|
||||
}
|
||||
|
||||
#pragma code_page(default)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -16,6 +16,9 @@
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include "cdlg.h"
|
||||
#include "filedlgbrowser.h"
|
||||
|
||||
/*
|
||||
* Òóê èçðè÷íî ïèøåøå äà íå ïèïàì íåùî, àìà àç ãî ïèïíàõ.
|
||||
* Àêî èìà ïðîáëåìè íÿêîé äà ãè îïðàâè.
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
@@ -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
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
@@ -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
@@ -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"
|
||||
|
||||
@@ -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
@@ -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 "Открыть файл"
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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 );
|
||||
|
||||
@@ -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
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 );
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -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
@@ -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));
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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"
|
||||
|
||||
@@ -233,10 +233,6 @@ ConvertBitmapInfo(
|
||||
BOOL FollowedByData
|
||||
);
|
||||
|
||||
DEVMODEW *
|
||||
NTAPI
|
||||
GdiConvertToDevmodeW(DEVMODEA *dm);
|
||||
|
||||
DWORD
|
||||
WINAPI
|
||||
GetAndSetDCDWord( HDC, INT, DWORD, DWORD, DWORD, DWORD );
|
||||
|
||||
@@ -1353,7 +1353,7 @@ GdiConvertMetaFilePict(HGLOBAL hMem)
|
||||
*/
|
||||
DEVMODEW *
|
||||
WINAPI
|
||||
GdiConvertToDevmodeW(DEVMODEA *dmA)
|
||||
GdiConvertToDevmodeW(const DEVMODEA *dmA)
|
||||
{
|
||||
DEVMODEW *dmW;
|
||||
WORD dmW_size, dmA_size;
|
||||
|
||||
@@ -147,6 +147,5 @@ HRESULT WINAPI DllGetClassObject( REFCLSID rclsid, REFIID iid, LPVOID *ppv )
|
||||
|
||||
HRESULT WINAPI DllCanUnloadNow( void )
|
||||
{
|
||||
FIXME("\n");
|
||||
return S_FALSE;
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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 *);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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(
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
@ stub DllInstall
|
||||
@ stub DllRegisterServer
|
||||
@ stub DllUnregisterServer
|
||||
@ stdcall -private DllRegisterServer()
|
||||
@ stdcall -private DllUnregisterServer()
|
||||
@ stub InitializePKI
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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,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))
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
#ifndef __WINE_LOCALSPL_PRIVATE__
|
||||
#define __WINE_LOCALSPL_PRIVATE__
|
||||
|
||||
#include <windef.h>
|
||||
|
||||
/* ## DLL-wide Globals ## */
|
||||
extern HINSTANCE LOCALSPL_hInstance;
|
||||
|
||||
+571
-11
@@ -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 */
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user