HANDLE LoadGrabberLibrary( LPSTR lpExtName ) { HMODULE hDLL; FNAME szDLL; static HMODULE hStaticDLL; static FNAME szStaticDLL; if ( !lpExtName ) { // A cleanup call if ( hStaticDLL ) { FreeLibrary( hStaticDLL ); hStaticDLL = NULL; szStaticDLL[0] = '\0'; } return( NULL ); } if ( !LookupExtFile( lpExtName, szDLL, IDN_SCANNER ) ) return( NULL ); if ( hStaticDLL ) { // If we have a DLL already loaded if ( !bKeepDLL || !StringsEqual( szStaticDLL, szDLL ) ) { // If we don't keep DLL's or its a new one... FreeLibrary( hStaticDLL ); hStaticDLL = NULL; szStaticDLL[0] = '\0'; } } if ( hStaticDLL ) return( hStaticDLL ); if ( !(hDLL = (HMODULE)AstralLoadLibrary(szDLL)) ) return( NULL ); hStaticDLL = hDLL; lstrcpy( szStaticDLL, szDLL ); return( hDLL ); }
BOOL LoadAviDLL() { if (hPPAviDll) goto ExitError; hPPAviDll = (HINSTANCE)AstralLoadLibrary( "avifile.dll" ); if (!hPPAviDll) goto ExitError; // dll_InitVFW = (LONG (FAR * )(void)) // GetProcAddress(hPPAviDll, "InitVFW"); // if (!dll_InitVFW) goto ExitError; // dll_TermVFW = (LONG (FAR * )(void)) // GetProcAddress(hPPAviDll,"TermVFW"); // if (!dll_TermVFW) goto ExitError; dll_AVIFileInit = (void (STDAPICALLTYPE FAR * )(void)) GetProcAddress(hPPAviDll, "AVIFileInit"); if (!dll_AVIFileInit) goto ExitError; dll_AVIFileExit = (void (STDAPICALLTYPE FAR * )(void)) GetProcAddress(hPPAviDll, "AVIFileExit"); if (!dll_AVIFileExit) goto ExitError; dll_AVIFileOpen = (HRESULT (STDAPICALLTYPE FAR * )(PAVIFILE FAR * ppfile, LPCSTR szFile, UINT uMode, LPCLSID lpHandler)) GetProcAddress(hPPAviDll, "AVIFileOpen"); if (!dll_AVIFileOpen) goto ExitError; dll_AVIFileRelease = (ULONG (STDAPICALLTYPE FAR * )(PAVIFILE pfile)) GetProcAddress(hPPAviDll, "AVIFileRelease"); if (!dll_AVIFileRelease) goto ExitError; dll_AVIFileGetStream = (HRESULT (STDAPICALLTYPE FAR * )(PAVIFILE pfile, PAVISTREAM FAR * ppavi, DWORD fccType, LONG lParam)) GetProcAddress(hPPAviDll, "AVIFileGetStream"); if (!dll_AVIFileGetStream) goto ExitError; dll_AVIFileInfo = (HRESULT (STDAPICALLTYPE FAR * )(PAVIFILE pfile, AVIFILEINFO FAR * pfi, LONG lSize)) GetProcAddress(hPPAviDll, "AVIFileInfo"); if (!dll_AVIFileInfo) goto ExitError; dll_AVIFileCreateStream = (HRESULT (STDAPICALLTYPE FAR * )(PAVIFILE pfile, PAVISTREAM FAR *ppavi, AVISTREAMINFO FAR *psi)) GetProcAddress(hPPAviDll, "AVIFileCreateStream"); if (!dll_AVIFileCreateStream) goto ExitError; dll_AVIStreamRelease = (ULONG (STDAPICALLTYPE FAR * )(PAVISTREAM pavi)) GetProcAddress(hPPAviDll, "AVIStreamRelease"); if (!dll_AVIStreamRelease) goto ExitError; dll_AVIStreamGetFrameOpen = (PGETFRAME (STDAPICALLTYPE FAR * )(PAVISTREAM pavi, LPBITMAPINFOHEADER lpbiWanted)) GetProcAddress(hPPAviDll, "AVIStreamGetFrameOpen"); if (!dll_AVIStreamGetFrameOpen) goto ExitError; dll_AVIStreamGetFrame = (LPVOID (STDAPICALLTYPE FAR * )(PGETFRAME pg, LONG lPos)) GetProcAddress(hPPAviDll, "AVIStreamGetFrame"); if (!dll_AVIStreamGetFrame) goto ExitError; dll_AVIStreamGetFrameClose = (HRESULT (STDAPICALLTYPE FAR * )(PGETFRAME pg)) GetProcAddress(hPPAviDll, "AVIStreamGetFrameClose"); if (!dll_AVIStreamGetFrameClose) goto ExitError; dll_AVIStreamInfo = (HRESULT (STDAPICALLTYPE FAR * )(PAVISTREAM pavi, AVISTREAMINFO FAR * psi, LONG lSize)) GetProcAddress(hPPAviDll, "AVIStreamInfo"); if (!dll_AVIStreamInfo) goto ExitError; dll_AVIStreamStart = (LONG (STDAPICALLTYPE FAR * )(PAVISTREAM pavi)) GetProcAddress(hPPAviDll, "AVIStreamStart"); if (!dll_AVIStreamStart) goto ExitError; dll_AVIStreamSetFormat = (HRESULT (STDAPICALLTYPE FAR * )(PAVISTREAM pavi, LONG lPos,LPVOID lpFormat,LONG cbFormat)) GetProcAddress(hPPAviDll, "AVIStreamSetFormat"); if (!dll_AVIStreamSetFormat) goto ExitError; dll_AVIStreamWrite = (HRESULT (STDAPICALLTYPE FAR * )(PAVISTREAM pavi, LONG lStart, LONG lSamples, LPVOID lpBuffer, LONG cbBuffer, DWORD dwFlags, LONG FAR *plSampWritten, LONG FAR *plBytesWritten)) GetProcAddress(hPPAviDll, "AVIStreamWrite"); if (!dll_AVIStreamWrite) goto ExitError; dll_AVIStreamLength = (LONG (STDAPICALLTYPE FAR * )(PAVISTREAM pavi)) GetProcAddress(hPPAviDll, "AVIStreamLength"); if (!dll_AVIStreamLength) goto ExitError; if (!InitVFW()) goto ExitError; AVIFileInit(); return(TRUE); ExitError: if (hPPAviDll) FreeLibrary( hPPAviDll ); hPPAviDll = NULL; Message(IDS_ENOAVI); return(FALSE); }
BOOL ExportImageDLL( LPSTR lpExportFile ) { HMODULE hModule; FARPROC lpClockCursor = NULL; FARPROC lpDataPointer = NULL; EXPORTPROC lpStartProc; EXPORTPROC lpProcessProc; EXPORTPROC lpEndProc; LPFRAME lpFrame; EXPPARMS parms; BOOL fSuccess = FALSE; LPIMAGE lpImage; lpImage = GetActiveImage(); if (!lpImage) goto Exit; lpFrame = ImgGetBaseEditFrame(lpImage); if (!lpFrame) goto Exit; if (!(hModule = (HMODULE)AstralLoadLibrary(lpExportFile))) goto Exit; lpStartProc = (EXPORTPROC)GetProcAddress(hModule, "_ExportStart"); lpProcessProc = (EXPORTPROC)GetProcAddress(hModule, "_ExportProcess"); lpEndProc = (EXPORTPROC)GetProcAddress(hModule, "_ExportEnd"); if ( !lpStartProc || !lpProcessProc || !lpEndProc ) goto Exit; iExportXSize = FrameXSize( lpFrame ); iExportYSize = FrameYSize( lpFrame ); iExportDepth = FrameDepth( lpFrame ); iExportResolution = FrameResolution( lpFrame ); lpClockCursor = MakeProcInstance( (FARPROC)ExportClockCursor, PictPubApp.Get_hInstAstral() ); lpDataPointer = MakeProcInstance( (FARPROC)ExportDataPointer, PictPubApp.Get_hInstAstral() ); AllocLines( &lpExportBuffer, 1, iExportXSize, max(1, iExportDepth)); parms.hInstance = PictPubApp.Get_hInstAstral(); parms.hWnd = GetActiveWindow(); parms.lpszFileName = lpImage->CurFile; parms.XSize = iExportXSize; parms.YSize = iExportYSize; parms.Depth = iExportDepth; parms.Resolution = iExportResolution; parms.StatusCallback = (LPROC)lpClockCursor; parms.DataPointer = (LPTRPROC)lpDataPointer; if (!lpClockCursor || !lpDataPointer || !lpExportBuffer) goto Exit; if ((*lpStartProc)((LPEXPPARMS)&parms)) { MessageStatus( IDS_PLEASEWAIT ); if ((*lpProcessProc)((LPEXPPARMS)&parms)) { fSuccess = TRUE; (*lpEndProc)((LPEXPPARMS)&parms); } } Exit: if (lpClockCursor) FreeProcInstance((FARPROC)lpClockCursor); if (lpDataPointer) FreeProcInstance((FARPROC)lpDataPointer); if (lpExportBuffer) FreeUp(lpExportBuffer); lpExportBuffer = NULL; if (hModule) FreeLibrary(hModule); MessageStatus( 0 ); return(fSuccess); }
BOOL CInitializationThread::InitInstance() { HWND hWnd = m_pMainWnd->GetSafeHwnd(); FNAME szFileName; BOOL bRunningEmbedded = PictPubApp.RunEmbedded(); BOOL bRunningAutomated = PictPubApp.RunAutomated(); lstrcpy(szFileName, Control.ProgHome); lstrcat(szFileName, "string.dll"); // add and/or delete items to menus ( any one-time ( permanent ) menu changes ) // setup IDR_PPMAIN m_pPictPubApp->SetupAppMainMenu( CMenu::FromHandle( GetMenu( hWnd))); VERIFY(SetEvent(m_hSetupAppMainMenuEvent)); // setup IDR_PPSVRTYPE_PP POSITION TemplatePos = m_pPictPubApp->GetFirstDocTemplate(); if (TemplatePos) { CPPMultiDocTemplate *pTemplate = (CPPMultiDocTemplate *)m_pPictPubApp->GetNextDocTemplate (TemplatePos); m_pPictPubApp->SetupAppSharedMenu(CMenu::FromHandle(pTemplate->m_hMenuShared)); VERIFY(SetEvent(m_hSetupAppSharedMenuEvent)); } lstrcpy(szFileName, Control.ProgHome); lstrcat(szFileName, "hint.dll"); if( ( hInstHintLib = (HINSTANCE)AstralLoadLibrary( szFileName ))) { if( Hints.fStatusHintsOn ) MessageStatus( IDS_WELCOME, (LPSTR)szAppName ); VERIFY(SetEvent(m_hHintsLoadEvent)); } else //ERROR CONDITION !! ; /* This is TWAIN Stuff */ if (!bRunningEmbedded) { TW_IDENTITY identity; identity.Id = (TW_UINT32)hWnd; identity.Version.MajorNum = 3; identity.Version.MinorNum = 1; identity.Version.Language = TWLG_USA; identity.Version.Country = TWCY_USA; lstrcpy(identity.Version.Info, "3.1 Beta Release"); identity.ProtocolMajor = TWON_PROTOCOLMAJOR; identity.ProtocolMinor = TWON_PROTOCOLMINOR; identity.SupportedGroups = DG_CONTROL | DG_IMAGE; lstrcpy(identity.Manufacturer, "MicroGrafX Inc."); lstrcpy(identity.ProductFamily, "Windows Apps"); lstrcpy(identity.ProductName, szAppName ); DCInitialize( &identity, hWnd ); } /* End of TWAIN Stuff */ VERIFY(SetEvent(m_hTWAINEvent)); // Finished Initialization ! VERIFY(SetEvent(m_hInitThreadDoneEvent)); // avoid entering standard message loop by returning FALSE return FALSE; }