Показать сообщение отдельно
Старый 06.11.2006, 09:16   #6  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2480 (88) +++++++++
Регистрация: 20.08.2005
А Windows какая? 98?
У меня такой код проходит на ура (WinXP, для 98 и Me не проверял - не на чем)
X++:
static void DisplaySettings(Args _args)
{
#define.UserDLL("user32.dll")

    Binary dm;
    Binary NewDEVMODE()
    {
        container       con          = WinAPI::getVersion();
        int             SizeOfStruct = conpeek(con, 1) > 4 ? 156 : 148;
        Binary          DEVMODE      = new Binary(SizeOfStruct);
        ;
        DEVMODE.word    ( 36, SizeOfStruct ); //dmSize
        return DEVMODE;
    }

    Binary EnumDisplaySettings ()
    {
        DLL             DLL;
        DLLFunction     DLLFunction;
        Binary          DEVMODE      = NewDEVMODE();
        ;

        DLL = new DLL(#UserDLL);
        DLLFunction = new DLLFunction(DLL, 'EnumDisplaySettingsA');

        DLLFunction.returns(ExtTypes::DWord);
        DLLFunction.arg(ExtTypes::DWord,
                        ExtTypes::DWord,
                        ExtTypes::Pointer);


        DLLFunction.call( 0, 0, DEVMODE);
        return DEVMODE;
    }
    ;
    dm = EnumDisplaySettings();
    info(dm.string(0));
}
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: Link (1).