GetDeviceGammaRamp wie benutzen ???



  • Hi,
    Ich würde gern die aktuelle Gammeeinstellung für einen PC bekommen ????
    Dazu hab ich folgende Funktion gefunden, doch leider weiss ich nicht, wie sie benutzen muss - ich bekomme dauernd nur Fehler 😞 bzw. crashs 😞

    BOOL WINAPI GetDeviceGammaRamp(
    HDC hDC,
    LPVOID lpRamp
    );

    Parameters
    hDC
    Specifies the device context of the direct color display board in question.
    lpRamp
    Points to a buffer where the function can place the current gamma ramp of the color display board. The gamma ramp is specified in three arrays of 256 WORD elements each, which contain the mapping between RGB values in the frame buffer and digital-analog-converter (DAC) values. The sequence of the arrays is red, green, blue.

    Kann mir jemand sagen wir ich diesen LPVOID benutzen muss, da ich annehme das der Fehler da liegt 🙂

    MfG Unwissender 🙂



  • Ich glaub so:

    WORD *ramp = new WORD[3];
    // ...
    GetDeviceGammaRamp(hDC,(LPVOID) ramp);
    

    cya 🙂



  • three arrays of 256 WORD elements

    @MagiC Creator: Lern erstmal Englisch :p

    Versuch lieber mal das:
    WORD array[3][256];
    oder vieleicht auch das:
    WORD array[3*256];

    [ Dieser Beitrag wurde am 06.01.2003 um 19:39 Uhr von D@niel $chumann editiert. ]



  • OOPs... oder wha-o (wie unser Deutschlehrer sagen würde...) 😃

    cya 🙂



  • Danke für die Hilfe 🙂

    @D@niel $chumann
    Es scheint zu funktionieren ( WORD array[3][256]; ), doch leider bekomme ich immer die gleiche Zahlen, auch wenn ich die Gammaeinstellungen ändere :(. Mach ich da was falsch oder ist das nicht der Befehl, den ich suche 🙂

    //....
            WORD array[3][256];
        hdc=GetDC(NULL);
        GetDeviceGammaRamp(hdc,(LPVOID)array);
        ReleaseDC(NULL,hdc); 
    
            sprintf(buffer,"RED: %d Green: %d Blue: %d",array[0][255],array[1][255],array[2][255]);
        MessageBox(NULL,buffer,"test",NULL);
    //....
    

    MfG Unwissender 🙂


Anmelden zum Antworten