}
_SEH2_END;
+ if(*ppSurf != NULL)
+ Main_DirectDraw_AddRef(This);
+
LeaveCriticalSection(&ddcs);
return ret;
}
/* 5 of 31 DirectDraw7_Vtable api are working simluare to windows */
/* 8 of 31 DirectDraw7_Vtable api are under devloping / testing */
+HRESULT WINAPI Main_DirectDraw_CreatePalette(LPDDRAWI_DIRECTDRAW_INT This, DWORD dwFlags,
+ LPPALETTEENTRY palent, LPDIRECTDRAWPALETTE* ppPalette, LPUNKNOWN pUnkOuter)
+{
+ HRESULT ret = DD_OK;
+ DX_WINDBG_trace();
+
+ EnterCriticalSection(&ddcs);
+ *ppPalette = NULL;
+
+ _SEH2_TRY
+ {
+ ret = Internal_CreatePalette(This, dwFlags, palent, ppPalette, pUnkOuter);
+ }
+ _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
+ {
+ ret = DDERR_INVALIDPARAMS;
+ }
+ _SEH2_END;
+
+ //Versions 7 and 4 are addref'ed
+ if((This->lpVtbl == &DirectDraw7_Vtable || This->lpVtbl == &DirectDraw4_Vtable) && *ppPalette != NULL)
+ Main_DirectDraw_AddRef(This) ;
+ LeaveCriticalSection(&ddcs);
+ return ret;
+}