source: trunk/src/kernel32/atom.cpp@ 3512

Last change on this file since 3512 was 3512, checked in by sandervl, 25 years ago

atom fix

File size: 6.6 KB
Line 
1/* $Id: atom.cpp,v 1.8 2000-05-10 13:13:31 sandervl Exp $ */
2
3/*
4 * Win32 ATOM api functions
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 <os2win.h>
13#include "unicode.h"
14#include <heapstring.h>
15
16#define DBG_LOCALLOG DBG_atom
17#include "dbglocal.h"
18
19//******************************************************************************
20//******************************************************************************
21ATOM WIN32API FindAtomA( LPCSTR arg1)
22{
23 dprintf(("KERNEL32: FindAtomA\n"));
24 return O32_FindAtom(arg1);
25}
26//******************************************************************************
27//******************************************************************************
28ATOM WIN32API FindAtomW(LPCWSTR arg1)
29{
30 ATOM rc;
31 char *astring;
32
33 dprintf(("KERNEL32: FindAtomW"));
34 if (arg1 < (LPCWSTR)0x10000)
35 rc = O32_FindAtom((char*)arg1);
36 else
37 {
38 astring = UnicodeToAsciiString((LPWSTR)arg1);
39 rc = O32_FindAtom(astring);
40 FreeAsciiString(astring);
41 }
42 return(rc);
43}
44//******************************************************************************
45//******************************************************************************
46ATOM WIN32API AddAtomA(LPCSTR arg1)
47{
48 ATOM atom;
49
50 atom = O32_AddAtom(arg1);
51 if(HIWORD(arg1)) {
52 dprintf(("KERNEL32: AddAtomA %s returned %x", arg1, atom));
53 }
54 else dprintf(("KERNEL32: AddAtomA %x returned %x", arg1, atom));
55 return atom;
56}
57//******************************************************************************
58//******************************************************************************
59ATOM WIN32API AddAtomW(LPCWSTR arg1)
60{
61 ATOM rc;
62 char *astring;
63
64 if(HIWORD(arg1) == 0) {
65 rc = AddAtomA((char*)arg1);
66 }
67 else
68 {
69 astring = UnicodeToAsciiString((LPWSTR)arg1);
70 rc = AddAtomA(astring);
71 FreeAsciiString(astring);
72 }
73 return(rc);
74}
75//******************************************************************************
76//SvL: 24-6-'97 - Added
77//******************************************************************************
78UINT WIN32API GetAtomNameA( ATOM arg1, LPSTR arg2, int arg3)
79{
80 dprintf(("KERNEL32: GetAtomNameA\n"));
81 return O32_GetAtomName(arg1, arg2, arg3);
82}
83//******************************************************************************
84//SvL: 24-6-'97 - Added
85//******************************************************************************
86UINT WIN32API GetAtomNameW(ATOM arg1, LPWSTR arg2, int arg3)
87{
88 UINT rc;
89 char *astring;
90
91 dprintf(("KERNEL32: GetAtomNameW\n"));
92 astring = UnicodeToAsciiString(arg2); /* FIXME! */
93 rc = O32_GetAtomName(arg1, astring, arg3);
94 FreeAsciiString(astring);
95 return(rc);
96}
97//******************************************************************************
98//******************************************************************************
99ATOM WIN32API DeleteAtom( ATOM arg1)
100{
101 dprintf(("KERNEL32: DeleteAtom\n"));
102 return O32_DeleteAtom(arg1);
103}
104//******************************************************************************
105//******************************************************************************
106ATOM WIN32API GlobalDeleteAtom( ATOM arg1)
107{
108 dprintf(("KERNEL32: GlobalDeleteAtom\n"));
109 return O32_GlobalDeleteAtom(arg1);
110}
111//******************************************************************************
112//******************************************************************************
113BOOL WIN32API InitAtomTable( DWORD arg1)
114{
115 dprintf(("KERNEL32: InitAtomTable\n"));
116 return O32_InitAtomTable(arg1);
117}
118//******************************************************************************
119//******************************************************************************
120ATOM WIN32API GlobalAddAtomA(LPCSTR arg1)
121{
122 ATOM atom;
123
124 atom = O32_GlobalAddAtom(arg1);
125 if(HIWORD(arg1)) {
126 dprintf(("KERNEL32: GlobalAddAtomA %s returned %x", arg1, atom));
127 }
128 else dprintf(("KERNEL32: GlobalAddAtomA %x returned %x", arg1, atom));
129 return atom;
130}
131//******************************************************************************
132//******************************************************************************
133ATOM WIN32API GlobalAddAtomW(LPCWSTR arg1)
134{
135 char *astring;
136 ATOM rc;
137
138 if(HIWORD(arg1) == 0)
139 {
140 rc = GlobalAddAtomA((char*)arg1);
141 }
142 else
143 {
144 astring = UnicodeToAsciiString((LPWSTR)arg1);
145 rc = GlobalAddAtomA(astring);
146 FreeAsciiString(astring);
147 }
148 return(rc);
149}
150//******************************************************************************
151//******************************************************************************
152ATOM WIN32API GlobalFindAtomA( LPCSTR arg1)
153{
154 if (arg1 < (LPCSTR)0x10000)
155 dprintf(("KERNEL32: GlobalFindAtomA %#4x\n", arg1));
156 else
157 dprintf(("KERNEL32: GlobalFindAtomA %s\n", arg1));
158 return O32_GlobalFindAtom(arg1);
159}
160//******************************************************************************
161//******************************************************************************
162ATOM WIN32API GlobalFindAtomW( LPCWSTR arg1)
163{
164 char *astring;
165 ATOM rc;
166
167 if(HIWORD(arg1) == 0)
168 rc = GlobalFindAtomA((char*)arg1);
169 else
170 {
171 astring = UnicodeToAsciiString((LPWSTR)arg1);
172 rc = GlobalFindAtomA(astring);
173 FreeAsciiString(astring);
174 }
175 return(rc);
176}
177//******************************************************************************
178//******************************************************************************
179UINT WIN32API GlobalGetAtomNameA(ATOM atom, LPSTR lpszBuffer, int cchBuffer)
180{
181 dprintf(("KERNEL32: GlobalGetAtomNameA %x %x %d", atom, lpszBuffer, cchBuffer));
182 return O32_GlobalGetAtomName(atom, lpszBuffer, cchBuffer);
183}
184//******************************************************************************
185//******************************************************************************
186UINT WIN32API GlobalGetAtomNameW(ATOM atom, LPWSTR lpszBuffer, int cchBuffer)
187{
188 char *astring;
189 UINT rc;
190
191 dprintf(("KERNEL32: GlobalGetAtomNameW %x %x %d", atom, lpszBuffer, cchBuffer));
192 astring = (char *)alloca(cchBuffer);
193 if(astring == NULL) {
194 dprintf(("GlobalGetAtomNameW: alloca failed!!"));
195 DebugInt3();
196 return 0;
197 }
198 rc = GlobalGetAtomNameA(atom, astring, cchBuffer);
199 if(rc) {
200 lstrcpyAtoW(lpszBuffer, astring);
201 }
202 else lpszBuffer[0] = 0; //necessary?
203 return rc;
204}
205//******************************************************************************
206//******************************************************************************
Note: See TracBrowser for help on using the repository browser.