Changeset 6208 for trunk/src


Ignore:
Timestamp:
Jul 7, 2001, 9:08:39 PM (24 years ago)
Author:
sandervl
Message:

PrintDlg: open32 <-> kernel32 global memory handle conversion added

Location:
trunk/src/comdlg32
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/comdlg32/comdlg32.cpp

    r5481 r6208  
    1 /* $Id: comdlg32.cpp,v 1.29 2001-04-05 05:55:07 sandervl Exp $ */
     1/* $Id: comdlg32.cpp,v 1.30 2001-07-07 19:08:39 sandervl Exp $ */
    22
    33/*
     
    4242  a->hwndOwner = Win32ToOS2Handle(a->hwndOwner);
    4343
    44 
     44#ifdef USING_OPEN32
     45
     46#define FLAG_TO_OPEN32       0
     47#define FLAG_FROM_OPEN32     1
     48
     49//******************************************************************************
     50//******************************************************************************
     51HGLOBAL GlobalCopy(HGLOBAL hDest, HGLOBAL hSource, BOOL fToOpen32)
     52{
     53 LPVOID src;
     54 LPVOID dest;
     55 ULONG  size;
     56
     57      if(fToOpen32 == FLAG_TO_OPEN32) {
     58          src = GlobalLock(hSource);
     59          if(src) {
     60              size = GlobalSize(hSource);
     61              if(hDest == NULL) {
     62                  hDest = O32_GlobalAlloc(GHND, size);
     63              }
     64              dest  = O32_GlobalLock(hDest);
     65              memcpy(dest, src, size);
     66              O32_GlobalUnlock(hDest);
     67          }
     68          GlobalUnlock(hSource);
     69      }
     70      else {
     71          src = O32_GlobalLock(hSource);
     72          if(src) {
     73              size = O32_GlobalSize(hSource);
     74              if(hDest == NULL) {
     75                  hDest = GlobalAlloc(GHND, size);
     76              }
     77              dest  = GlobalLock(hDest);
     78              memcpy(dest, src, size);
     79              GlobalUnlock(hDest);
     80          }
     81          O32_GlobalUnlock(hSource);
     82      }
     83      return hDest;
     84}
     85#endif
    4586/*****************************************************************************
    4687 * Name      :
     
    5899              LPPRINTDLGA, lppd)
    59100{
     101  BOOL      ret;
     102#ifdef USING_OPEN32
     103  HGLOBAL   hDevmode = 0, hDevNames = 0;
     104  HGLOBAL   hOrgDevmode = 0, hOrgDevNames = 0;
     105  DEVMODEA *devmode, *devmodeorg;
     106  DEVNAMES *devnames, *devnamesorg;
     107  ULONG     size;
     108#endif
    60109
    61110  COMDLG32_CHECKHOOK2(lppd, PD_ENABLEPRINTHOOK, LPPRINTHOOKPROC,lpfnPrintHook)
    62111  COMDLG32_CHECKHOOK2(lppd, PD_ENABLESETUPHOOK, LPSETUPHOOKPROC,lpfnSetupHook)
    63112
    64   return O32_PrintDlg(lppd);
     113#ifdef USING_OPEN32
     114  if(lppd->hDevMode) {
     115      hOrgDevmode = lppd->hDevMode;
     116      lppd->hDevMode = GlobalCopy(NULL, hOrgDevmode, FLAG_TO_OPEN32);
     117  }
     118  if(lppd->hDevNames) {
     119      hOrgDevNames = lppd->hDevNames;
     120      lppd->hDevNames = GlobalCopy(NULL, hOrgDevNames, FLAG_TO_OPEN32);
     121  }
     122#endif
     123  HWND hwndOwner = lppd->hwndOwner;
     124  if(lppd->hwndOwner) {
     125      lppd->hwndOwner = Win32ToOS2Handle(lppd->hwndOwner);
     126  }
     127  ret = O32_PrintDlg(lppd);
     128  lppd->hwndOwner = hwndOwner;
     129#ifdef USING_OPEN32
     130  if(ret == TRUE) {
     131      if(lppd->hDevMode) {
     132          hDevmode = lppd->hDevMode;
     133          lppd->hDevMode = GlobalCopy(hOrgDevmode, lppd->hDevMode, FLAG_FROM_OPEN32);
     134          O32_GlobalFree(hDevmode);
     135      }
     136      if(lppd->hDevNames) {
     137          hDevNames = lppd->hDevNames;
     138          lppd->hDevNames = GlobalCopy(hOrgDevNames, lppd->hDevNames, FLAG_FROM_OPEN32);
     139          O32_GlobalFree(hDevNames);
     140      }
     141  }
     142#endif
     143  return ret;
    65144}
    66145
     
    84163  PRINTDLGA pd;
    85164  BOOL      bResult;
     165
     166  //SvL: TODO: hDevMode & hDevNames
     167  dprintf(("PrintDlgW: ERROR NOT COMPLETE (UNICODE TRANSLATION)!!"));
    86168
    87169  memcpy(&pd,          // make binary copy first to save all the fields
  • trunk/src/comdlg32/makefile

    r5583 r6208  
    1 # $Id: makefile,v 1.25 2001-04-24 20:37:25 sandervl Exp $
     1# $Id: makefile,v 1.26 2001-07-07 19:08:39 sandervl Exp $
    22
    33#
     
    2020CDEFINES    = $(CDEFINES) -DNONAMELESSUNION
    2121!endif
     22
     23CDEFINES = $(CDEFINES) -DUSING_OPEN32
    2224
    2325#
     
    5052$(ODIN32_LIB)/comctl32.lib \
    5153$(ODIN32_LIB)/gdi32.lib \
     54####$(ODIN32_LIB)/wgss50.lib \
    5255$(ODIN32_LIB)/pmwinx.lib \
    5356os2386.lib \
Note: See TracChangeset for help on using the changeset viewer.