void CFindPicDlg::ShowPic(CString strName, CDC* pDc) { ::CoInitialize(NULL); // COM 初始化 HRESULT hr; CFile file; file.Open(strName, CFile::modeRead | CFile::shareDenyNone); // 读入文件内容 ULONGLONG Long = file.GetLength(); DWORD dwSize = (DWORD)file.GetLength(); HGLOBAL hMem = ::GlobalAlloc( GMEM_MOVEABLE, dwSize); LPVOID lpBuf = ::GlobalLock(hMem); file.Read(lpBuf, dwSize); file.Close(); ::GlobalUnlock(hMem); IStream * pStream = NULL; IPicture * pPicture = NULL; // 由 HGLOBAL 得到 IStream,参数 TRUE 表示释放 IStream 的同时,释放内存 hr = ::CreateStreamOnHGlobal(hMem, TRUE, &pStream ); ASSERT ( SUCCEEDED(hr) ); hr = ::OleLoadPicture(pStream, dwSize, TRUE, IID_IPicture, (LPVOID *)&pPicture); ASSERT(hr==S_OK); long nWidth,nHeight; // 宽高,MM_HIMETRIC 模式,单位是0.01毫米 pPicture->get_Width(&nWidth); // 宽 pPicture->get_Height(&