source: trunk/src/user32/winprop.cpp@ 2803

Last change on this file since 2803 was 2803, checked in by sandervl, 26 years ago

Added new logging feature

File size: 5.7 KB
Line 
1/* $Id: winprop.cpp,v 1.7 2000-02-16 14:28:28 sandervl Exp $ */
2/*
3 * Win32 Property apis for OS/2
4 *
5 *
6 * Copyright 1998 Sander van Leeuwen (sandervl@xs4all.nl)
7 *
8 *
9 * Project Odin Software License can be found in LICENSE.TXT
10 *
11 */
12#include <user32.h>
13#include <misc.h>
14#include "win32wbase.h"
15
16#define DBG_LOCALLOG DBG_winprop
17#include "dbglocal.h"
18
19#undef DEBUG
20
21//******************************************************************************
22//******************************************************************************
23int WIN32API EnumPropsA(HWND hwnd, PROPENUMPROCA arg2)
24{
25#ifdef DEBUG
26 WriteLog("USER32: EnumPropsA DOES NOT WORK\n");
27#endif
28 //calling convention problems
29 return 0;
30// return O32_EnumProps(hwnd, (PROPENUMPROC_O32)arg2);
31}
32//******************************************************************************
33//******************************************************************************
34int WIN32API EnumPropsExA( HWND hwnd, PROPENUMPROCEXA arg2, LPARAM arg3)
35{
36#ifdef DEBUG
37 WriteLog("USER32: EnumPropsExA DOES NOT WORK\n");
38#endif
39 //calling convention problems
40 return 0;
41// return O32_EnumPropsEx(hwnd, arg2, (PROPENUMPROCEX_O32)arg3);
42}
43//******************************************************************************
44//******************************************************************************
45int WIN32API EnumPropsExW( HWND hwnd, PROPENUMPROCEXW arg2, LPARAM arg3)
46{
47#ifdef DEBUG
48 WriteLog("USER32: EnumPropsExW DOES NOT WORK\n");
49#endif
50 // NOTE: This will not work as is (needs UNICODE support)
51 //calling convention problems
52 return 0;
53// return O32_EnumPropsEx(hwnd, arg2, arg3);
54}
55//******************************************************************************
56//******************************************************************************
57int WIN32API EnumPropsW( HWND hwnd, PROPENUMPROCW arg2)
58{
59#ifdef DEBUG
60 WriteLog("USER32: EnumPropsW DOES NOT WORK\n");
61#endif
62 // NOTE: This will not work as is (needs UNICODE support)
63 //calling convention problems
64 return 0;
65// return O32_EnumProps(hwnd, arg2);
66}
67//******************************************************************************
68//******************************************************************************
69HANDLE WIN32API GetPropA(HWND hwnd, LPCSTR arg2)
70{
71 Win32BaseWindow *window;
72 HANDLE rc;
73
74 window = Win32BaseWindow::GetWindowFromHandle(hwnd);
75 if(!window) {
76 dprintf(("GetPropA, window %x not found", hwnd));
77 SetLastError(ERROR_INVALID_WINDOW_HANDLE);
78 return 0;
79 }
80 rc = O32_GetProp(window->getOS2WindowHandle(), arg2);
81#ifdef DEBUG
82 if(HIWORD(arg2) != 0)
83 dprintf(("USER32: GetPropA %s returned %x\n", arg2, rc));
84 else dprintf(("USER32: GetPropA %X returned %x\n", arg2, rc));
85#endif
86 return rc;
87}
88//******************************************************************************
89//******************************************************************************
90HANDLE WIN32API GetPropW(HWND hwnd, LPCWSTR arg2)
91{
92 BOOL handle;
93 char *astring;
94
95 if(HIWORD(arg2) != 0)
96 astring = UnicodeToAsciiString((LPWSTR)arg2);
97 else astring = (char *)arg2;
98
99 handle = GetPropA(hwnd, (LPCSTR)astring);
100 if(HIWORD(astring) != 0)
101 FreeAsciiString(astring);
102
103 return(handle);
104}
105//******************************************************************************
106//******************************************************************************
107HANDLE WIN32API RemovePropA( HWND hwnd, LPCSTR arg2)
108{
109 Win32BaseWindow *window;
110
111 window = Win32BaseWindow::GetWindowFromHandle(hwnd);
112 if(!window) {
113 dprintf(("RemovePropA, window %x not found", hwnd));
114 SetLastError(ERROR_INVALID_WINDOW_HANDLE);
115 return 0;
116 }
117#ifdef DEBUG
118 if(HIWORD(arg2) != 0)
119 dprintf(("USER32: RemovePropA %s\n", arg2));
120 else dprintf(("USER32: RemovePropA %X\n", arg2));
121#endif
122 return O32_RemoveProp(window->getOS2WindowHandle(), arg2);
123}
124//******************************************************************************
125//******************************************************************************
126HANDLE WIN32API RemovePropW( HWND hwnd, LPCWSTR arg2)
127{
128 char *astring;
129 HANDLE rc;
130
131 if(HIWORD(arg2) != 0)
132 astring = UnicodeToAsciiString((LPWSTR)arg2);
133 else astring = (char *)arg2;
134
135 rc = RemovePropA(hwnd, astring);
136
137 if(HIWORD(astring) != 0)
138 FreeAsciiString(astring);
139 return rc;
140}
141//******************************************************************************
142//******************************************************************************
143BOOL WIN32API SetPropA( HWND hwnd, LPCSTR arg2, HANDLE arg3)
144{
145 Win32BaseWindow *window;
146
147 window = Win32BaseWindow::GetWindowFromHandle(hwnd);
148 if(!window) {
149 dprintf(("SetPropA, window %x not found", hwnd));
150 SetLastError(ERROR_INVALID_WINDOW_HANDLE);
151 return 0;
152 }
153#ifdef DEBUG
154 if(HIWORD(arg2) != 0)
155 dprintf(("USER32: SetPropA %s to %x\n", arg2, arg3));
156 else dprintf(("USER32: SetPropA %X to %x\n", arg2, arg3));
157#endif
158 return O32_SetProp(window->getOS2WindowHandle(), arg2, arg3);
159}
160//******************************************************************************
161//******************************************************************************
162BOOL WIN32API SetPropW(HWND hwnd, LPCWSTR arg2, HANDLE arg3)
163{
164 BOOL rc;
165 char *astring;
166
167 if(HIWORD(arg2) != 0)
168 astring = UnicodeToAsciiString((LPWSTR)arg2);
169 else astring = (char *)arg2;
170
171 rc = SetPropA(hwnd, astring, arg3);
172 if(HIWORD(astring) != 0)
173 FreeAsciiString(astring);
174
175 return(rc);
176}
177//******************************************************************************
178//******************************************************************************
Note: See TracBrowser for help on using the repository browser.