Index: dc.c =================================================================== --- dc.c (revision 19665) +++ dc.c (working copy) @@ -964,6 +964,8 @@ return NULL; } /* FIXME - InitData can have some more bytes! */ + + InitData = &SafeInitData; } if(Driver) @@ -974,6 +976,7 @@ SetLastNtError(Status); return NULL; } + Driver = &SafeDriver; } if(Device) @@ -985,9 +988,10 @@ SetLastNtError(Status); return NULL; } + Device = &SafeDevice; } - Ret = IntGdiCreateDC(&SafeDriver, &SafeDevice, NULL, &SafeInitData, FALSE); + Ret = IntGdiCreateDC(Driver, Device, NULL, InitData, FALSE); return Ret; } @@ -1025,6 +1029,8 @@ return NULL; } /* FIXME - InitData can have some more bytes! */ + + InitData = &SafeInitData; } if(Driver) @@ -1035,6 +1041,7 @@ SetLastNtError(Status); return NULL; } + Driver = &SafeDriver; } if(Device) @@ -1046,11 +1053,10 @@ SetLastNtError(Status); return NULL; } + Device = &SafeDevice; } - Ret = IntGdiCreateDC(NULL == Driver ? NULL : &SafeDriver, - NULL == Device ? NULL : &SafeDevice, NULL, - NULL == InitData ? NULL : &SafeInitData, TRUE); + Ret = IntGdiCreateDC(Driver, Device, NULL, InitData, TRUE); return Ret; }