a lot depends on what you are trying to achieve
if you want a set of functions that completely emulates the following functions:
BeginBufferedAnimation
BeginBufferedPaint
BufferedPaintClear
BufferedPaintInit
BufferedPaintRenderAnimation
BufferedPaintSetAlpha
BufferedPaintStopAllAnimations
BufferedPaintUnInit
you have your work cut out for you
on the other hand, if you want to replace the functionality in one program, you might be ok
it seems that BeginBufferedPaint creates a DIB section, somewhere along the line
but making the set of functions compatible with the Vista/Win7 functions may not be easy
BufferedPaintInit is called before BeginBufferedPaint or BeginBufferedAnimation for each thread that uses these functions.
Each call to BufferedPaintInit should be matched with a call to BufferedPaintUnInit when calls to buffered paint APIs are no longer needed. An application may call this API multiple times, as long as each call to BufferedPaintInit is balanced with a call to BufferedPaintUnInit.
This function only needs to be called once in the lifetime of a thread. Typically, this function is called before creating the main application window, or during WM_CREATE. Call BufferedPaintUnInit after destroying the window, or during WM_NCDESTROY.