Hmm. Well I seem to have fixed my problem. It was not necessarily a memory size issue really after all. LOL. But rather two different problems of my own doing. One, the RECT specifying the src region wasn't being set BEFORE the BltFast call. So, usually it was a 0-sized RECT being copied.
Second, I was BltFasting a src region larger than the actual display. I didn't know this was an issue (clipping?) and maybe it's not (I remember it was in older DirectX SDKs)...but I had to specify a RECT equal to or smaller than the display. Using NULL only worked for src images smaller than the display.
Ok, so GapiDraw is runnin fine now. Too bad I get fatal exception crashes every time my program runs an fopen or fclose.

Weird.
If it's not one thing it's another.
Thanks for the input/comments guys.
JJB