05.11.2006, 21:47 | #1 |
Британский учённый
|
ChangeDisplaySettings
Всем доброго времени суток!
Собственно проблемка в том что функция 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; } |
|