Here are some excerpts from the help file that may help. Sorry if you've already been over this.
Supported image file types are BMP, GIF, JPG and PNG on all devices. BMP images can be RLE-encoded (1, 4, 8, and 24-bit BMPs are supported).
I'm not sure what kind of file your *.gfx files are. I also don't know if GapiDraw goes by extension when determining files or if it interrogates the file itself to determine its type.
When images are loaded from file, GapiDraw will use an absolute file path if pImageFile begins with "\" or "x:\". If pImageFile does not begin with "\" or "x:\", GapiDraw will use the application path of your executable file and append the image file name (e.g. if your executable is "\Program Files\Games\MyGame\MyGame.exe" and you call CreateSurface with pImageFile set to "MyPicture.png", GapiDraw will try to load the image as "\Program Files\Games\MyGame\MyPicture.png").
Do you have your graphics files in the same directory as your exe file?
By the way, are you using C++ Builder? I never really worked with it, but that's what it looks like to me. I was more of a Delphi person, myself. :) I'm using Visual C++ for GapiDraw.