Показать сообщение отдельно
Старый 06.11.2006, 00:42   #5  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Сделал, как Вы написали, только dmSize заполнял и даже циклом прошелся по нему, задавая размер структуры, но без изменений
Может я функцию неправильно вызываю?

X++:
#define.SizeOfStruct        (156)

static Binary NewDEVMODE()
{
    Binary          DEVMODE      = new Binary(#SizeOfStruct);
    container       con          = WinAPI::getVersion();
;

//    DEVMODE.dWord   (0, #SizeOfStruct); // Specifies the size, in bytes, of the structure
    DEVMODE.byte    ( 0 );  //dmDeviceName[CCHDEVICENAME];
    DEVMODE.word    ( 32 );  //dmSpecVersion
    DEVMODE.word    ( 34 );  //dmDriverVersion
    DEVMODE.word    ( 36, #SizeOfStruct ); //dmSize
    DEVMODE.word    ( 38 ); //dmDriverExtra
    DEVMODE.dWord   ( 40 ); //dmFields

    DEVMODE.word    ( 44 ); //dmOrientation
    DEVMODE.word    ( 46 ); //dmPaperSize
    DEVMODE.word    ( 48 ); //dmPaperLength
    DEVMODE.word    ( 50 ); //dmPaperWidth
    DEVMODE.word    ( 52 ); //dmScale
    DEVMODE.word    ( 54 ); //dmCopies
    DEVMODE.word    ( 56 ); //dmDefaultSource
    DEVMODE.word    ( 58 ); //dmPrintQuality

//    DEVMODE.dWord   ( 48 ); //dmPosition
//    DEVMODE.dWord   ( 56 ); //dmDisplayOrientation
//    DEVMODE.dWord   ( 64 ); //dmDisplayFixedOutput

    DEVMODE.word    ( 60 ); //dmColor
    DEVMODE.word    ( 62 ); //dmDuplex
    DEVMODE.word    ( 64 ); //dmYResolution
    DEVMODE.word    ( 66 ); //dmTTOption
    DEVMODE.word    ( 68 ); //dmCollate
    DEVMODE.byte    ( 70 ); //dmFormName[CCHFORMNAME]; ???
    DEVMODE.word    ( 102 ); //dmLogPixels
    DEVMODE.dWord   ( 104 ); //dmBitsPerPel
    DEVMODE.dWord   ( 108 ); //dmPelsWidth
    DEVMODE.dWord   ( 112 ); //dmPelsHeight

    DEVMODE.dWord   ( 116 ); //dmDisplayFlags
//    DEVMODE.dWord   ( 120 ); //dmNup

    DEVMODE.dWord   ( 120 ); //dmDisplayFrequency

//    if (conPeek(con, 4) >= 0x0400)
    {
        DEVMODE.dWord   ( 124 ); //dmICMMethod
        DEVMODE.dWord   ( 128 ); //dmICMIntent
        DEVMODE.dWord   ( 132 ); //dmMediaType
        DEVMODE.dWord   ( 136 ); //dmDitherType
        DEVMODE.dWord   ( 140 ); //dmReserved1
        DEVMODE.dWord   ( 144 ); //dmReserved2
    }
//    if (conPeek(con, 4) >= 0x0500 || conPeek(con, 4) >= 0x0400)
    {
        DEVMODE.dWord   ( 148 ); //dmPanningWidth
        DEVMODE.dWord   ( 152 ); //dmPanningHeight
    }

    return DEVMODE;
}
Входной параметр поменял, без результатов.

Последний раз редактировалось Link; 06.11.2006 в 00:53.