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

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

Property fixes, set last error when window creation fails

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