一応出来た・・・けど結局コピペの塊。逝ってきます。
{
IPicture* iPicture = NULL;
AnsiString File = "c:\\2ch\\giko.gif";
HANDLE hFile = CreateFile(File.c_str(),GENERIC_READ,0,NULL,OPEN_EXISTING,0,NULL);
DWORD dwFileSize = GetFileSize(hFile, NULL);
LPVOID pvData = NULL;
HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, dwFileSize);
pvData = GlobalLock(hGlobal);
DWORD dwBytesRead = 0;
BOOL bRead = ReadFile(hFile,pvData,dwFileSize,&dwBytesRead,NULL);
GlobalUnlock(hGlobal);
CloseHandle(hFile);
IStream* srm = NULL;
HRESULT hr = CreateStreamOnHGlobal(hGlobal,TRUE,&srm);
hr = ::OleLoadPicture(srm,0,FALSE,IID_IPicture,(void**)&iPicture);
long hmWidth,hmHeight;
iPicture->get_Width (&hmWidth);
iPicture->get_Height(&hmHeight);
RECT rc;
rc = Image1->Canvas->ClipRect;
int mona = 26.46;
iPicture->Render(Image1->Canvas->Handle,0,0,hmWidth/mona,hmHeight/mona,0,hmHeight,hmWidth,-hmHeight,&rc);
srm->Release();
}
肝はTCanvasのハンドルがそのままHDCだってのに気づけたことと、mona=26.46かな(藁
TPictureAdapterやTOleStream調べてたらすげー時間くっちまったよ・・・けどまぁパスカルの読み方がなんとなく分かっただけ収穫だな
すげーながくてごめんな。んぢゃ一人芝居はここまでってことで。