Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

122 lines
3.7 KiB

/***********************************************************************
TWAIN source code:
Copyright (C) '92-'93 Wang Laboratories, Inc.:
All rights reserved.
Author: Ken Spina
Project: TWAIN Scanner Support in O/i Client
Module: CONTROL.C - Contains IMGTwaintoOiControl()
Comments: DLL to support Wang Open/image Products
History of Revisions:
$Log: S:\oiwh\oitwain\control.c_v $
*
* Rev 1.1 20 Jul 1995 12:23:02 KFS
* changed oitwain.h to engoitwa.h and display.h engdisp.h
*
* Rev 1.0 20 Jul 1995 10:31:50 KFS
* Initial entry
*
* Rev 1.1 23 Aug 1994 15:54:28 KFS
* No code change, add vlog comments to file on checkin
*
REV# INITIALS DATE CHANGES
1 kfs 03/10/93 Created for OITWAIN.DLL functions
2 kfs 05/28/93 fixed reset of options to 0 state, was
only setting them but couldn't clear
them
3 kfs 07/21/93 use OiControl() to tell us the window for
image data through new hImageWnd in TWAIN
property struct (for cabinet)
*************************************************************************/
#include "nowin.h" // eliminate not used Window definitions
#include <windows.h> // Note: dc.h also REQUIRES windows defs
#include "TWAIN.h" // for TW data type defines
//#include "oitwain.h" // public function prototypes & definitions
#include "engoitwa.h" // Prototypes & definitions used by other DLL's
// Previously called oitwain.h
#include "internal.h" // non-public function prototypes & definitions
#include "engdisp.h" // the private prop stuff -- jar
/* imported variables from other modules */
extern char szOiTwainProp[]; // "O/i TWAIN Support";
extern DSMENTRYPROC lpDSM_Entry; // entry point to the SM
/* exported variables to other modules (extern in other modules) */
// Globals within module
/***********************************************************************
*
* FUNCTION: IMGTwaintoOiControl()
*
* COMMENTS: Enables/disables internal transfer to O/i window, and
* controls way the iamge is displayed, and/or filed.
*
* ARGS: hWnd - handle to O/i Window
* dwFlags - flags for setting control
* dwMask - Mask for eliminating bit assignment
*
* RETURNS:
* Error success or failure
*
*/
WORD PASCAL IMGTwaintoOiControl(HWND hWnd, HWND hImageWnd, DWORD dwFlags, DWORD dwMask)
{
STR_DCERROR DCError;
HANDLE hOiSupport;
pTWAIN_SUPPORT pOiSupport = 0L;
DCError.dcRC = DCError.dcCC = 0; // TWXC_SUCCESS
if (!IsWindow(hWnd))
{
DCError.dcRC = TWRC_BAD_WND;
}
if (!(hOiSupport = IMGGetProp(hWnd, szOiTwainProp)))
{
DCError.dcRC = TWRC_NULLPTR;
}
if (!(pOiSupport = (pTWAIN_SUPPORT)GlobalLock(hOiSupport)))
{
DCError.dcRC = TWRC_MEMLOCK;
}
if (DCError.dcRC)
return DCError.dcRC;
// MORE TO COME
if (pOiSupport->DCDSEnabled) // never do it beyond state 4
DCError.dcRC = TWRC_FAILURE;
else
{
DWORD dwTempFlags = pOiSupport->dwFlags;
DWORD dwChangedFlags;
pOiSupport->hImageWnd = hWnd; // assume image window is where the prop is
if (hImageWnd)
{
if (IsWindow(hImageWnd)) // if given an image window use it instead
pOiSupport->hImageWnd = hImageWnd;
}
dwChangedFlags = (dwFlags ^ pOiSupport->dwFlags) & dwMask;
dwTempFlags = dwFlags & dwChangedFlags;
pOiSupport->dwFlags &= ~dwChangedFlags;
pOiSupport->dwFlags |= dwTempFlags;
}
if (pOiSupport) // unlock TWAIN info
{
GlobalUnlock(hOiSupport);
}
return DCError.dcRC;
} // end of IMGTwaintoOiControl()