[TWAIN_32] Sync with Wine Staging 4.18. CORE-16441
[reactos.git] / dll / win32 / twain_32 / twain_i.h
index ab2acb4..7939d23 100644 (file)
@@ -1,5 +1,6 @@
 /*
  * Copyright 2000 Corel Corporation
+ * Copyright 2006 Marcus Meissner
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
 #ifndef _TWAIN32_H
 #define _TWAIN32_H
 
-#ifdef HAVE_SANE
-# include <sane/sane.h>
-#endif
-#include <twain.h>
-//#include "windef.h"
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "twain.h"
+#include "wine/list.h"
 
-/* internel information about an active data source */
+struct pending_message
+{
+    struct list entry;
+    TW_UINT16 msg;
+};
+
+/* internal information about an active data source */
 typedef struct tagActiveDS
 {
     struct tagActiveDS *next;                  /* next active DS */
     TW_IDENTITY                identity;               /* identity */
-    TW_UINT16          currentState;           /* current state */
-    TW_EVENT           pendingEvent;           /* pending event to be sent to
-                                                   application */
-    TW_UINT16          twCC;                   /* condition code */
-    HWND               hwndOwner;              /* window handle of the app */
-#ifdef HAVE_SANE
-    SANE_Handle                deviceHandle;           /* device handle */
-    SANE_Parameters     sane_param;             /* parameters about the image
-                                                   transfered */
-#endif
-    /* Capabiblities */
-    TW_UINT16          capXferMech;            /* ICAP_XFERMECH */
+    HMODULE            hmod;
+    DSENTRYPROC                dsEntry;
+    struct list         pending_messages;
+    HWND                ui_window;
+    HWND                event_window;
 } activeDS;
 
-TW_UINT16 DSM_initialized;      /* whether Source Manager is initialized */
-TW_UINT16 DSM_currentState;     /* current state of Source Manager */
-TW_UINT16 DSM_twCC;             /* current condition code of Source Manager */
-TW_HANDLE DSM_parentHWND;       /* window handle of the Source's "parent" */
-TW_UINT32 DSM_sourceId;         /* source id generator */
-TW_UINT16 DSM_currentDevice;    /* keep track of device during enumeration */
-#ifdef HAVE_SANE
-const SANE_Device **device_list;/* a list of all sane devices */
-#endif
-activeDS *activeSources;       /* list of active data sources */
+TW_UINT16 DSM_twCC DECLSPEC_HIDDEN;             /* current condition code of Source Manager */
 
-/* Helper functions */
-extern activeDS *TWAIN_LookupSource (pTW_IDENTITY pDest);
-extern TW_UINT16 TWAIN_SaneCapability (activeDS *pSource,
-        pTW_CAPABILITY pCapability, TW_UINT16 action);
+activeDS *activeSources DECLSPEC_HIDDEN;       /* list of active data sources */
 
-/*  */
-extern TW_UINT16 TWAIN_ControlGroupHandler (
-       pTW_IDENTITY pOrigin, pTW_IDENTITY pDest,
-    TW_UINT16 DAT, TW_UINT16 MSG, TW_MEMREF pData);
-extern TW_UINT16 TWAIN_ImageGroupHandler (
-       pTW_IDENTITY pOrigin, pTW_IDENTITY pDest,
-       TW_UINT16 DAT, TW_UINT16 MSG, TW_MEMREF pData);
-extern TW_UINT16 TWAIN_AudioGroupHandler (
-       pTW_IDENTITY pOrigin, pTW_IDENTITY pDest,
-       TW_UINT16 DAT, TW_UINT16 MSG, TW_MEMREF pData);
-extern TW_UINT16 TWAIN_SourceManagerHandler (
-       pTW_IDENTITY pOrigin, TW_UINT16 DAT, TW_UINT16 MSG, TW_MEMREF pData);
+HINSTANCE DSM_hinstance DECLSPEC_HIDDEN;
 
 /* Implementation of operation triplets (From Application to Source Manager) */
 extern TW_UINT16 TWAIN_CloseDS
-           (pTW_IDENTITY pOrigin, TW_MEMREF pData);
+           (pTW_IDENTITY pOrigin, TW_MEMREF pData) DECLSPEC_HIDDEN;
 extern TW_UINT16 TWAIN_IdentityGetDefault
-           (pTW_IDENTITY pOrigin, TW_MEMREF pData);
+           (pTW_IDENTITY pOrigin, TW_MEMREF pData) DECLSPEC_HIDDEN;
 extern TW_UINT16 TWAIN_IdentityGetFirst
-           (pTW_IDENTITY pOrigin, TW_MEMREF pData);
+           (pTW_IDENTITY pOrigin, TW_MEMREF pData) DECLSPEC_HIDDEN;
 extern TW_UINT16 TWAIN_IdentityGetNext
-           (pTW_IDENTITY pOrigin, TW_MEMREF pData);
+           (pTW_IDENTITY pOrigin, TW_MEMREF pData) DECLSPEC_HIDDEN;
 extern TW_UINT16 TWAIN_OpenDS
-           (pTW_IDENTITY pOrigin, TW_MEMREF pData);
+           (pTW_IDENTITY pOrigin, TW_MEMREF pData) DECLSPEC_HIDDEN;
 extern TW_UINT16 TWAIN_UserSelect
-           (pTW_IDENTITY pOrigin, TW_MEMREF pData);
+           (pTW_IDENTITY pOrigin, TW_MEMREF pData) DECLSPEC_HIDDEN;
 extern TW_UINT16 TWAIN_CloseDSM
-           (pTW_IDENTITY pOrigin, TW_MEMREF pData);
+           (pTW_IDENTITY pOrigin, TW_MEMREF pData) DECLSPEC_HIDDEN;
 extern TW_UINT16 TWAIN_OpenDSM
-           (pTW_IDENTITY pOrigin, TW_MEMREF pData);
+           (pTW_IDENTITY pOrigin, TW_MEMREF pData) DECLSPEC_HIDDEN;
 extern TW_UINT16 TWAIN_GetDSMStatus
-           (pTW_IDENTITY pOrigin, TW_MEMREF pData);
-
-/* Implementation of operation triplets
- * From Application to Source (Control Information) */
-TW_UINT16 TWAIN_CapabilityGet
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_CapabilityGetCurrent
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest,TW_MEMREF pData);
-TW_UINT16 TWAIN_CapabilityGetDefault
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_CapabilityQuerySupport
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_CapabilityReset
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_CapabilitySet
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_CustomDSDataGet
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_CustomDSDataSet
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_AutomaticCaptureDirectory
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_ChangeDirectory
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_FileSystemCopy
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_CreateDirectory
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_FileSystemDelete
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_FormatMedia
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_FileSystemGetClose
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_FileSystemGetFirstFile
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_FileSystemGetInfo
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_FileSystemGetNextFile
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_FileSystemRename
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_ProcessEvent
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_PassThrough
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_PendingXfersEndXfer
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_PendingXfersGet
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_PendingXfersReset
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_PendingXfersStopFeeder
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_SetupFileXferGet
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_SetupFileXferGetDefault
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_SetupFileXferReset
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_SetupFileXferSet
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_SetupFileXfer2Get
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_SetupFileXfer2GetDefault
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_SetupFileXfer2Reset
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_SetupFileXfer2Set
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_SetupMemXferGet
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_GetDSStatus
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_DisableDSUserInterface
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_EnableDSUserInterface
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_EnableDSUIOnly
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_XferGroupGet
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_XferGroupSet
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-
-/* Implementation of operation triplets
- * From Application to Source (Image Information) */
-TW_UINT16 TWAIN_CIEColorGet
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_ExtImageInfoGet
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_GrayResponseReset
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_GrayResponseSet
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_ImageFileXferGet
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_ImageInfoGet
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_ImageLayoutGet
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_ImageLayoutGetDefault
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_ImageLayoutReset
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_ImageLayoutSet
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_ImageMemXferGet
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_ImageNativeXferGet
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_JPEGCompressionGet
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_JPEGCompressionGetDefault
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_JPEGCompressionReset
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_JPEGCompressionSet
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_Palette8Get
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_Palette8GetDefault
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_Palette8Reset
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_Palette8Set
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_RGBResponseReset
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_RGBResponseSet
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-
-/* Implementation of operation triplets
- * From Application to Source (Audio Information) */
-TW_UINT16 TWAIN_AudioFileXferGet
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_AudioInfoGet
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-TW_UINT16 TWAIN_AudioNativeXferGet
-    (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, TW_MEMREF pData);
-
-/* Implementation of TWAIN capabilities */
-TW_UINT16 TWAIN_ICAPXferMech
-    (activeDS *pSource, pTW_CAPABILITY pCapability, TW_UINT16 action);
+           (pTW_IDENTITY pOrigin, TW_MEMREF pData) DECLSPEC_HIDDEN;
+extern TW_UINT16 TWAIN_ControlNull
+           (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, activeDS *pSource, TW_UINT16 MSG, TW_MEMREF pData) DECLSPEC_HIDDEN;
+extern TW_UINT16 TWAIN_ProcessEvent
+           (pTW_IDENTITY pOrigin, activeDS *pSource, TW_MEMREF pData) DECLSPEC_HIDDEN;
 
 #endif