Beispiel #1
0
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 );
}
Beispiel #2
0
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);
}
Beispiel #3
0
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);
}
Beispiel #4
0
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;
}