Thx CornedBee, em.. i think i might look into the tls as I come acroos that before. and let me explain more about what i intend to do...

I have wrote a WIN32 DLL which will decode the GIF image file and playback frame by frame on the created window (playback window) with a 2 export function:
PlayGIF
StopGIF

But, each time the PlayGIF is call, there will create a thread to start decode the GIF image file and load each frame into memory DC till all the frame is loaded, then it start playback the image by using BitBlt within the WM_PAINT event by the frame index control by the thread together with InvalidateRect API.

Because, all the memory DC is declare a global variable under the DLL. If i move to tls, how much work I need to do or may be can give me some guideline