Ignore:
Timestamp:
Nov 2, 1999, 9:37:43 PM (26 years ago)
Author:
sandervl
Message:

Wine 991031 update

File:
1 edited

Legend:

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

    r1548 r1556  
    1 /* $Id: cdlg32.cpp,v 1.1 1999-11-02 19:09:41 sandervl Exp $ */
     1/* $Id: cdlg32.cpp,v 1.2 1999-11-02 20:37:42 sandervl Exp $ */
    22/*
    3  *  Common Dialog Boxes interface (32 bit) (990815)
    4  *  Find/Replace 
     3 *  Common Dialog Boxes interface (32 bit)
     4 *  Find/Replace
    55 *
    66 * Copyright 1999 Bertho A. Stultiens
    77 */
    88
     9#ifdef __WIN32OS2__
     10// ><DJR 17.05.99 Force to use C-interfaces for now to prevent CALLBACK definition compiler error
     11#define CINTERFACE 1
    912#include <os2win.h>
     13#else
     14#include "winbase.h"
     15#endif
    1016#include "commdlg.h"
    1117#include "cderr.h"
     
    1622#include "cdlg.h"
    1723
     24
    1825HINSTANCE       COMDLG32_hInstance = 0;
    19 HINSTANCE16     COMDLG32_hInstance16 = 0;
    2026
    2127static DWORD    COMDLG32_TlsIndex;
     
    2531HINSTANCE       SHELL32_hInstance = 0;
    2632
    27 HDPA    (* WINAPI COMDLG32_DPA_Create) (INT); 
    28 LPVOID  (* WINAPI COMDLG32_DPA_GetPtr) (const HDPA, INT);   
    29 LPVOID  (* WINAPI COMDLG32_DPA_DeleteAllPtrs) (const HDPA hdpa);
    30 LPVOID  (* WINAPI COMDLG32_DPA_DeletePtr) (const HDPA hdpa, INT i);
    31 INT     (* WINAPI COMDLG32_DPA_InsertPtr) (const HDPA, INT, LPVOID);
    32 BOOL    (* WINAPI COMDLG32_DPA_Destroy) (const HDPA);
    33 
    34 HICON   (* WINAPI COMDLG32_ImageList_GetIcon) (HIMAGELIST, INT, UINT);
    35 HIMAGELIST (* WINAPI COMDLG32_ImageList_LoadImageA) (HINSTANCE, LPCSTR, INT, INT, COLORREF, UINT, UINT);
    36 BOOL    (* WINAPI COMDLG32_ImageList_Draw) (HIMAGELIST himl, int i, HDC hdcDest, int x, int y, UINT fStyle);
    37 BOOL    (* WINAPI COMDLG32_ImageList_Destroy) (HIMAGELIST himl);
     33/* DPA */
     34HDPA    (WINAPI* COMDLG32_DPA_Create) (INT); 
     35LPVOID  (WINAPI* COMDLG32_DPA_GetPtr) (const HDPA, INT);   
     36LPVOID  (WINAPI* COMDLG32_DPA_DeletePtr) (const HDPA hdpa, INT i);
     37LPVOID  (WINAPI* COMDLG32_DPA_DeleteAllPtrs) (const HDPA hdpa);
     38INT     (WINAPI* COMDLG32_DPA_InsertPtr) (const HDPA, INT, LPVOID);
     39BOOL    (WINAPI* COMDLG32_DPA_Destroy) (const HDPA);
     40
     41/* IMAGELIST */
     42HICON   (WINAPI* COMDLG32_ImageList_GetIcon) (HIMAGELIST, INT, UINT);
     43HIMAGELIST (WINAPI *COMDLG32_ImageList_LoadImageA) (HINSTANCE, LPCSTR, INT, INT, COLORREF, UINT, UINT);
     44BOOL    (WINAPI* COMDLG32_ImageList_Draw) (HIMAGELIST himl, int i, HDC hdcDest, int x, int y, UINT fStyle);
     45BOOL    (WINAPI* COMDLG32_ImageList_Destroy) (HIMAGELIST himl);
     46
     47/* ITEMIDLIST */
     48LPITEMIDLIST (WINAPI *COMDLG32_PIDL_ILClone) (LPCITEMIDLIST);
     49LPITEMIDLIST (WINAPI *COMDLG32_PIDL_ILCombine)(LPCITEMIDLIST,LPCITEMIDLIST);
     50LPITEMIDLIST (WINAPI *COMDLG32_PIDL_ILGetNext)(LPITEMIDLIST);
     51BOOL (WINAPI *COMDLG32_PIDL_ILRemoveLastID)(LPCITEMIDLIST);
     52BOOL (WINAPI *COMDLG32_PIDL_ILIsEqual)(LPCITEMIDLIST, LPCITEMIDLIST);
     53
     54/* SHELL */
     55BOOL (WINAPI *COMDLG32_SHGetPathFromIDListA) (LPCITEMIDLIST,LPSTR);
     56HRESULT (WINAPI *COMDLG32_SHGetSpecialFolderLocation)(HWND,INT,LPITEMIDLIST *);
     57DWORD (WINAPI *COMDLG32_SHGetDesktopFolder)(IShellFolder **);
     58DWORD   (WINAPI *COMDLG32_SHGetFileInfoA)(LPCSTR,DWORD,SHFILEINFOA*,UINT,UINT);
     59DWORD (WINAPI *COMDLG32_SHFree)(LPVOID);
     60
     61/* PATH */
     62BOOL (WINAPI *COMDLG32_PathIsRootA)(LPCSTR x);
     63LPCSTR (WINAPI *COMDLG32_PathFindFilenameA)(LPCSTR path);
     64DWORD (WINAPI *COMDLG32_PathRemoveFileSpecA)(LPSTR fn);
     65BOOL (WINAPI *COMDLG32_PathMatchSpecW)(LPCWSTR x, LPCWSTR y);
     66LPSTR (WINAPI *COMDLG32_PathAddBackslashA)(LPSTR path);
    3867
    3968/***********************************************************************
     
    4877BOOL WINAPI COMDLG32_DllEntryPoint(HINSTANCE hInstance, DWORD Reason, LPVOID Reserved)
    4978{
    50 //      TRACE("(%08x, %08lx, %p)\n", hInstance, Reason, Reserved);
     79        TRACE("(%08x, %08lx, %p)\n", hInstance, Reason, Reserved);
    5180
    5281        switch(Reason)
     
    5685                if(COMDLG32_hInstance)
    5786                {
    58                         dprintf(("comdlg32.dll instantiated twice in one address space!\n"));
     87                        ERR("comdlg32.dll instantiated twice in one address space!\n");
    5988                        /*
    6089                         * We should return FALSE here, but that will break
     
    7099                if((COMDLG32_TlsIndex = TlsAlloc()) == 0xffffffff)
    71100                {
    72                         dprintf(("No space for COMDLG32 TLS\n"));
     101                        ERR("No space for COMDLG32 TLS\n");
    73102                        return FALSE;
    74103                }
     
    79108                if (!COMCTL32_hInstance || !SHELL32_hInstance)
    80109                {
    81                         dprintf(("loading of comctl32 or shell32 failed\n"));
     110                        ERR("loading of comctl32 or shell32 or shlwapi failed\n");
    82111                        return FALSE;
    83112                }
    84 
     113                /* DPA */
    85114                *(VOID **)&COMDLG32_DPA_Create=(void*)GetProcAddress(COMCTL32_hInstance, (LPCSTR)328L);
    86115                *(VOID **)&COMDLG32_DPA_Destroy=(void*)GetProcAddress(COMCTL32_hInstance, (LPCSTR)329L);
     
    90119                *(VOID **)&COMDLG32_DPA_DeleteAllPtrs=(void*)GetProcAddress(COMCTL32_hInstance, (LPCSTR)337L);
    91120
     121                /* IMAGELIST */
    92122                *(VOID **)&COMDLG32_ImageList_GetIcon=(void*)GetProcAddress(COMCTL32_hInstance,"ImageList_GetIcon");
    93123                *(VOID **)&COMDLG32_ImageList_LoadImageA=(void*)GetProcAddress(COMCTL32_hInstance,"ImageList_LoadImageA");
    94124                *(VOID **)&COMDLG32_ImageList_Draw=(void*)GetProcAddress(COMCTL32_hInstance,"ImageList_Draw");
    95125                *(VOID **)&COMDLG32_ImageList_Destroy=(void*)GetProcAddress(COMCTL32_hInstance,"ImageList_Destroy");
     126               
     127                /* ITEMISLIST */
     128               
     129                *(VOID **)&COMDLG32_PIDL_ILIsEqual =(void*)GetProcAddress(SHELL32_hInstance, (LPCSTR)21L);
     130                *(VOID **)&COMDLG32_PIDL_ILCombine =(void*)GetProcAddress(SHELL32_hInstance, (LPCSTR)25L);
     131                *(VOID **)&COMDLG32_PIDL_ILGetNext =(void*)GetProcAddress(SHELL32_hInstance, (LPCSTR)153L);
     132                *(VOID **)&COMDLG32_PIDL_ILClone =(void*)GetProcAddress(SHELL32_hInstance, (LPCSTR)18L);
     133                *(VOID **)&COMDLG32_PIDL_ILRemoveLastID =(void*)GetProcAddress(SHELL32_hInstance, (LPCSTR)17L);
     134               
     135                /* SHELL */
     136               
     137                *(VOID **)&COMDLG32_SHFree = (void*)GetProcAddress(SHELL32_hInstance,"SHFree");
     138                *(VOID **)&COMDLG32_SHGetSpecialFolderLocation = (void*)GetProcAddress(SHELL32_hInstance,"SHGetSpecialFolderLocation");
     139                *(VOID **)&COMDLG32_SHGetPathFromIDListA = (void*)GetProcAddress(SHELL32_hInstance,"SHGetPathFromIDListA");
     140                *(VOID **)&COMDLG32_SHGetDesktopFolder = (void*)GetProcAddress(SHELL32_hInstance,"SHGetDesktopFolder");
     141                *(VOID **)&COMDLG32_SHGetFileInfoA = (void*)GetProcAddress(SHELL32_hInstance,"SHGetFileInfoA");
     142
     143                /* ### WARINIG ###
     144                We can't do a GetProcAddress to link to  StrRetToBuf[A|W] sine not all
     145                versions of the shlwapi are exporting these functions. When we are
     146                seperating the dlls then we have to dublicate code from shell32 into comdlg32.
     147                Till then just call these functions. These functions don't have any side effects
     148                so it won't break the use of any combination of native and buildin dll's (jsch) */
     149
     150                /* PATH */
     151                *(VOID **)&COMDLG32_PathMatchSpecW = (void*)GetProcAddress(SHELL32_hInstance,"PathMatchSpecW");
     152                *(VOID **)&COMDLG32_PathIsRootA = (void*)GetProcAddress(SHELL32_hInstance,"PathIsRootA");
     153                *(VOID **)&COMDLG32_PathRemoveFileSpecA = (void*)GetProcAddress(SHELL32_hInstance,"PathRemoveFileSpecA");
     154                *(VOID **)&COMDLG32_PathFindFilenameA = (void*)GetProcAddress(SHELL32_hInstance,"PathFindFileNameA");
     155                *(VOID **)&COMDLG32_PathAddBackslashA = (void*)GetProcAddress(SHELL32_hInstance,"PathAddBackslashA");
    96156                break;
    97157
     
    138198void COMDLG32_SetCommDlgExtendedError(DWORD err)
    139199{
     200        TRACE("(%08lx)\n", err);
    140201        TlsSetValue(COMDLG32_TlsIndex, (void *)err);
    141202}
Note: See TracChangeset for help on using the changeset viewer.