Ignore:
Timestamp:
Oct 5, 1999, 9:33:37 PM (26 years ago)
Author:
phaller
Message:

Add: debug information

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/shell32/new/classes.cpp

    r791 r1145  
     1/* $Id: classes.cpp,v 1.2 1999-10-05 19:33:36 phaller Exp $ */
     2
    13/*
    2  *      file type mapping
    3  *      (HKEY_CLASSES_ROOT - Stuff)
     4 * Win32 SHELL32 for OS/2
    45 *
     6 * Copyright 1997 Marcus Meissner
     7 * Copyright 1999 Patrick Haller (haller@zebra.fh-weingarten.de)
     8 * Project Odin Software License can be found in LICENSE.TXT
    59 *
    610 */
     11
     12/*
     13 *      file type mapping
     14 *      (HKEY_CLASSES_ROOT - Stuff)
     15 */
     16
     17
     18/*****************************************************************************
     19 * Includes                                                                  *
     20 *****************************************************************************/
     21
    722#include <stdlib.h>
    823#include <string.h>
    924#include <odin.h>
     25#include <odinwrap.h>
     26#include <os2sel.h>
    1027
    1128#define ICOM_CINTERFACE 1
     
    2340#include <misc.h>
    2441
    25 DEFAULT_DEBUG_CHANNEL(shell)
     42
     43/*****************************************************************************
     44 * Local Variables                                                           *
     45 *****************************************************************************/
     46
     47ODINDEBUGCHANNEL(shell32-classes)
    2648
    2749#define MAX_EXTENSION_LENGTH 20
    2850
     51
     52/*****************************************************************************
     53 * Implementation                                                            *
     54 *****************************************************************************/
     55
    2956BOOL HCR_MapTypeToValue ( LPCSTR szExtension, LPSTR szFileType, LONG len, BOOL bPrependDot)
    30 {       HKEY    hkey;
    31         char    szTemp[MAX_EXTENSION_LENGTH + 2];
    32 
    33         TRACE("%s %p\n",szExtension, szFileType );
    34 
    35         if (bPrependDot)
    36           strcpy(szTemp, ".");
    37 
    38         lstrcpynA(szTemp+((bPrependDot)?1:0), szExtension, MAX_EXTENSION_LENGTH);
    39        
    40         if (RegOpenKeyExA(HKEY_CLASSES_ROOT,szTemp,0,0x02000000,&hkey))
    41         { return FALSE;
    42         }
    43 
    44         if (RegQueryValueA(hkey,NULL,szFileType,&len))
    45         { RegCloseKey(hkey);
    46           return FALSE;
    47         }       
    48 
    49         RegCloseKey(hkey);
    50 
    51         TRACE("-- %s\n", szFileType );
    52 
    53         return TRUE;
     57{
     58        HKEY    hkey;
     59        char    szTemp[MAX_EXTENSION_LENGTH + 2];
     60
     61  dprintf(("SHELL32:classes:HCR_MapTypeToValue(%s,%08xh,%08xh,%08xh)\n",
     62           szExtension,
     63           szFileType,
     64           len,
     65           bPrependDot));
     66
     67        if (bPrependDot)
     68          strcpy(szTemp, ".");
     69
     70        lstrcpynA(szTemp+((bPrependDot)?1:0), szExtension, MAX_EXTENSION_LENGTH);
     71
     72        if (RegOpenKeyExA(HKEY_CLASSES_ROOT,szTemp,0,0x02000000,&hkey))
     73        { return FALSE;
     74        }
     75
     76        if (RegQueryValueA(hkey,NULL,szFileType,&len))
     77        { RegCloseKey(hkey);
     78          return FALSE;
     79        }
     80
     81        RegCloseKey(hkey);
     82
     83        TRACE("-- %s\n", szFileType );
     84
     85        return TRUE;
    5486}
    5587
    5688
    5789BOOL HCR_GetExecuteCommand ( LPCSTR szClass, LPCSTR szVerb, LPSTR szDest, LONG len )
    58 {       HKEY    hkey;
    59         char    sTemp[256];
    60        
    61         TRACE("%s %s\n",szClass, szVerb );
    62 
    63         sprintf(sTemp, "%s\\shell\\%s\\command",szClass, szVerb);
    64 
    65         if (RegOpenKeyExA(HKEY_CLASSES_ROOT,sTemp,0,0x02000000,&hkey))
    66         { return FALSE;
    67         }
    68 
    69         if (RegQueryValueA(hkey,NULL,szDest,&len))
    70         { RegCloseKey(hkey);
    71           return FALSE;
    72         }       
    73         RegCloseKey(hkey);
    74 
    75         TRACE("-- %s\n", szDest );
    76 
    77         return TRUE;
     90{
     91        HKEY    hkey;
     92        char    sTemp[256];
     93
     94  dprintf(("SHELL32:classes:HCR_GetExecuteCommand(%s,%s,%08xh,%08xh)\n",
     95           szClass,
     96           szVerb,
     97           szDest,
     98           len));
     99
     100        sprintf(sTemp, "%s\\shell\\%s\\command",szClass, szVerb);
     101
     102        if (RegOpenKeyExA(HKEY_CLASSES_ROOT,sTemp,0,0x02000000,&hkey))
     103        { return FALSE;
     104        }
     105
     106        if (RegQueryValueA(hkey,NULL,szDest,&len))
     107        { RegCloseKey(hkey);
     108          return FALSE;
     109        }
     110        RegCloseKey(hkey);
     111
     112        TRACE("-- %s\n", szDest );
     113
     114        return TRUE;
    78115
    79116}
    80117/***************************************************************************************
    81 *       HCR_GetDefaultIcon      [internal]
     118*       HCR_GetDefaultIcon      [internal]
    82119*
    83120* Gets the icon for a filetype
    84121*/
    85122BOOL HCR_GetDefaultIcon (LPCSTR szClass, LPSTR szDest, LONG len, LPDWORD dwNr)
    86 {       HKEY    hkey;
    87         char    sTemp[256];
    88         char    sNum[5];
    89 
    90         TRACE("%s\n",szClass );
    91 
    92         sprintf(sTemp, "%s\\DefaultIcon",szClass);
    93 
    94         if (RegOpenKeyExA(HKEY_CLASSES_ROOT,sTemp,0,0x02000000,&hkey))
    95         { return FALSE;
    96         }
    97 
    98         if (RegQueryValueA(hkey,NULL,szDest,&len))
    99         { RegCloseKey(hkey);
    100           return FALSE;
    101         }       
    102 
    103         RegCloseKey(hkey);
    104 
    105         if (ParseFieldA (szDest, 2, sNum, 5))
    106         { *dwNr=atoi(sNum);
    107         }
    108        
    109         ParseFieldA (szDest, 1, szDest, len);
    110        
    111         TRACE("-- %s %li\n", szDest, *dwNr );
    112 
    113         return TRUE;
     123{
     124        HKEY    hkey;
     125        char    sTemp[256];
     126        char    sNum[5];
     127
     128  dprintf(("SHELL32:classes:HCR_GetDefaultIcon(%s,%08xh,%08xh,%08xh)\n",
     129           szClass,
     130           szDest,
     131           len,
     132           dwNr));
     133
     134        sprintf(sTemp, "%s\\DefaultIcon",szClass);
     135
     136        if (RegOpenKeyExA(HKEY_CLASSES_ROOT,sTemp,0,0x02000000,&hkey))
     137        { return FALSE;
     138        }
     139
     140        if (RegQueryValueA(hkey,NULL,szDest,&len))
     141        { RegCloseKey(hkey);
     142          return FALSE;
     143        }
     144
     145        RegCloseKey(hkey);
     146
     147        if (ParseFieldA (szDest, 2, sNum, 5))
     148        { *dwNr=atoi(sNum);
     149        }
     150
     151        ParseFieldA (szDest, 1, szDest, len);
     152
     153        TRACE("-- %s %li\n", szDest, *dwNr );
     154
     155        return TRUE;
    114156}
    115157
    116158/***************************************************************************************
    117 *       HCR_GetClassName        [internal]
     159*       HCR_GetClassName        [internal]
    118160*
    119161* Gets the name of a registred class
    120162*/
    121163BOOL HCR_GetClassName (REFIID riid, LPSTR szDest, DWORD len)
    122 {       HKEY    hkey;
    123         char    xriid[50];
    124         BOOL ret = FALSE;
    125         DWORD buflen = len;
    126 
    127         strcpy(xriid,"CLSID\\");
    128         WINE_StringFromCLSID(riid,&xriid[strlen(xriid)]);
    129 
    130         TRACE("%s\n",xriid );
    131 
    132         if (!RegOpenKeyExA(HKEY_CLASSES_ROOT,xriid,0,KEY_READ,&hkey))
    133         {
    134           if (!RegQueryValueExA(hkey,"",0,NULL,(LPBYTE)szDest,&len))
    135           {
    136             ret = TRUE;
    137           }
    138           RegCloseKey(hkey);
    139         }
    140 
    141         if (!ret || !szDest[0])
    142         {
    143           if(IsEqualIID(riid, &CLSID_ShellDesktop))
    144           {
    145             LoadStringA(shell32_hInstance, IDS_DESKTOP, szDest, buflen);
    146             ret = TRUE;
    147           }
    148           else if (IsEqualIID(riid, &IID_MyComputer))
    149           {
    150             LoadStringA(shell32_hInstance, IDS_MYCOMPUTER, szDest, buflen);
    151             ret = TRUE;
    152           }     
    153         }
    154 
    155         TRACE("-- %s\n", szDest);
    156 
    157         return ret;
     164{
     165        HKEY    hkey;
     166        char    xriid[50];
     167        BOOL ret = FALSE;
     168        DWORD buflen = len;
     169
     170  dprintf(("SHELL32:classes:HCR_GetClassName(%08xh,%08xh,%08xh)\n",
     171           riid,
     172           szDest,
     173           len));
     174
     175        strcpy(xriid,"CLSID\\");
     176        WINE_StringFromCLSID(riid,&xriid[strlen(xriid)]);
     177
     178        TRACE("%s\n",xriid );
     179
     180        if (!RegOpenKeyExA(HKEY_CLASSES_ROOT,xriid,0,KEY_READ,&hkey))
     181        {
     182          if (!RegQueryValueExA(hkey,"",0,NULL,(LPBYTE)szDest,&len))
     183          {
     184            ret = TRUE;
     185          }
     186          RegCloseKey(hkey);
     187        }
     188
     189        if (!ret || !szDest[0])
     190        {
     191          if(IsEqualIID(riid, &CLSID_ShellDesktop))
     192          {
     193            LoadStringA(shell32_hInstance, IDS_DESKTOP, szDest, buflen);
     194            ret = TRUE;
     195          }
     196          else if (IsEqualIID(riid, &IID_MyComputer))
     197          {
     198            LoadStringA(shell32_hInstance, IDS_MYCOMPUTER, szDest, buflen);
     199            ret = TRUE;
     200          }
     201        }
     202
     203        TRACE("-- %s\n", szDest);
     204
     205        return ret;
    158206}
    159207
    160208/***************************************************************************************
    161 *       HCR_GetFolderAttributes [internal]
     209*       HCR_GetFolderAttributes [internal]
    162210*
    163211* gets the folder attributes of a class
    164212*/
    165213BOOL HCR_GetFolderAttributes (REFIID riid, LPDWORD szDest)
    166 {       HKEY    hkey;
    167         char    xriid[60];
    168         DWORD   attributes;
    169         DWORD   len = 4;
    170 
    171         strcpy(xriid,"CLSID\\");
    172         WINE_StringFromCLSID(riid,&xriid[strlen(xriid)]);
    173         TRACE("%s\n",xriid );
    174 
    175         strcat (xriid, "\\ShellFolder");
    176 
    177         if (RegOpenKeyExA(HKEY_CLASSES_ROOT,xriid,0,KEY_READ,&hkey))
    178         {
    179           return FALSE;
    180         }
    181 
    182         if (RegQueryValueExA(hkey,"Attributes",0,NULL,(LPBYTE)&attributes,&len))
    183         {
    184           RegCloseKey(hkey);
    185           return FALSE;
    186         }
    187 
    188         RegCloseKey(hkey);
    189 
    190         TRACE("-- 0x%08lx\n", attributes);
    191 
    192         *szDest = attributes;
    193 
    194         return TRUE;
    195 }
    196 
     214{
     215        HKEY    hkey;
     216        char    xriid[60];
     217        DWORD   attributes;
     218        DWORD   len = 4;
     219
     220  dprintf(("SHELL32:classes:HCR_GetFolderAttributes(%08xh,%08xh)\n",
     221           riid,
     222           szDest));
     223
     224        strcpy(xriid,"CLSID\\");
     225        WINE_StringFromCLSID(riid,&xriid[strlen(xriid)]);
     226        TRACE("%s\n",xriid );
     227
     228        strcat (xriid, "\\ShellFolder");
     229
     230        if (RegOpenKeyExA(HKEY_CLASSES_ROOT,xriid,0,KEY_READ,&hkey))
     231        {
     232          return FALSE;
     233        }
     234
     235        if (RegQueryValueExA(hkey,"Attributes",0,NULL,(LPBYTE)&attributes,&len))
     236        {
     237          RegCloseKey(hkey);
     238          return FALSE;
     239        }
     240
     241        RegCloseKey(hkey);
     242
     243        TRACE("-- 0x%08lx\n", attributes);
     244
     245        *szDest = attributes;
     246
     247        return TRUE;
     248}
     249
Note: See TracChangeset for help on using the changeset viewer.