Всем доброго времени суток!
Собственно проблемка в том что функция EnumDisplaySettings упорно не желает заполнять передаваемую структуру

Если есть какие либо идеи буду признателен.
Код:
client static str ChangeDisplaySettings()
{
DLL DLL;
DLLFunction DLLFunction;
Binary DEVMODE = WinApi::NewDEVMODE();
str st;
;
DLL = new DLL(#UserDLL);
DLLFunction = new DLLFunction(DLL, 'ChangeDisplaySettingsA');
DLLFunction.returns(ExtTypes::DWord);
DLLFunction.arg(ExtTypes::DWord,
ExtTypes::DWord);
DEVMODE = WinApi::EnumDisplaySettings();
DEVMODE.dWord(46, 32);
DEVMODE.dWord(50, 1024);
DEVMODE.dWord(54, 768);
st = strfmt( '%1', DLLFunction.call( DEVMODE, #CDS_TEST ) );
return st;
}
Код:
client static Binary EnumDisplaySettings ()
{
DLL DLL;
DLLFunction DLLFunction;
Binary DEVMODE = WinApi::NewDEVMODE();
;
DLL = new DLL(#UserDLL);
DLLFunction = new DLLFunction(DLL, 'EnumDisplaySettingsA');
DLLFunction.returns(ExtTypes::DWord);
DLLFunction.arg(ExtTypes::String,
ExtTypes::DWord,
ExtTypes::Pointer);
DLLFunction.call( 0, 0, DEVMODE);
return DEVMODE;
}
Код:
#define.SizeOfStruct (94)
static Binary NewDEVMODE()
{
Binary DEVMODE = new Binary(#SizeOfStruct);
;
DEVMODE.dWord (0, 94); // Specifies the size, in bytes, of the structure
DEVMODE.string ( 4 ); //dmDeviceName
DEVMODE.word ( 6 ); //dmSpecVersion
DEVMODE.word ( 8 ); //dmDriverVersion
DEVMODE.word ( 10 ); //dmSize
DEVMODE.word ( 12 ); //dmDriverExtra
DEVMODE.dWord ( 20 ); //dmFields
DEVMODE.word ( 22 ); //dmScale
DEVMODE.word ( 24 ); //dmCopies
DEVMODE.word ( 26 ); //dmDefaultSource
DEVMODE.word ( 28 ); //dmPrintQuality
DEVMODE.word ( 30 ); //dmColor
DEVMODE.word ( 32 ); //dmDuplex
DEVMODE.word ( 34 ); //dmYResolution
DEVMODE.word ( 36 ); //dmTTOption
DEVMODE.word ( 38 ); //dmCollate
DEVMODE.string ( 42 ); //dmFormName
DEVMODE.word ( 44 ); //dmUnusedPadding
DEVMODE.word ( 46 ); //dmBitsPerPel
DEVMODE.dWord ( 50 ); //dmPelsWidth
DEVMODE.dWord ( 54 ); //dmPelsHeight
DEVMODE.dWord ( 58 ); //dmDisplayFrequency
DEVMODE.dWord ( 62 ); //dmICMMethod
DEVMODE.dWord ( 66 ); //dmICMIntent
DEVMODE.dWord ( 70 ); //dmMediaType
DEVMODE.dWord ( 74 ); //dmDitherType
DEVMODE.dWord ( 78 ); //dmReserved1
DEVMODE.dWord ( 82 ); //dmReserved2
DEVMODE.dWord ( 86 ); //dmPanningWidth
DEVMODE.dWord ( 90 ); //dmPanningHeight
return DEVMODE;
}