139a19a47SAndrew Rist /**************************************************************
2cdf0e10cSrcweir *
339a19a47SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one
439a19a47SAndrew Rist * or more contributor license agreements. See the NOTICE file
539a19a47SAndrew Rist * distributed with this work for additional information
639a19a47SAndrew Rist * regarding copyright ownership. The ASF licenses this file
739a19a47SAndrew Rist * to you under the Apache License, Version 2.0 (the
839a19a47SAndrew Rist * "License"); you may not use this file except in compliance
939a19a47SAndrew Rist * with the License. You may obtain a copy of the License at
1039a19a47SAndrew Rist *
1139a19a47SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0
1239a19a47SAndrew Rist *
1339a19a47SAndrew Rist * Unless required by applicable law or agreed to in writing,
1439a19a47SAndrew Rist * software distributed under the License is distributed on an
1539a19a47SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
1639a19a47SAndrew Rist * KIND, either express or implied. See the License for the
1739a19a47SAndrew Rist * specific language governing permissions and limitations
1839a19a47SAndrew Rist * under the License.
1939a19a47SAndrew Rist *
2039a19a47SAndrew Rist *************************************************************/
2139a19a47SAndrew Rist
2239a19a47SAndrew Rist
23cdf0e10cSrcweir
24cdf0e10cSrcweir #ifndef _DDEIMP_HXX
25cdf0e10cSrcweir #define _DDEIMP_HXX
26cdf0e10cSrcweir
27cdf0e10cSrcweir #ifdef OS2
28cdf0e10cSrcweir
29cdf0e10cSrcweir #include "ddemlos2.h"
30cdf0e10cSrcweir
31cdf0e10cSrcweir #define WORD sal_uInt16
32cdf0e10cSrcweir #define DWORD sal_uLong
33cdf0e10cSrcweir #define LPBYTE sal_uInt8*
34cdf0e10cSrcweir #define LPWORD sal_uInt16*
35cdf0e10cSrcweir #define LPDWORD sal_uLong*
36cdf0e10cSrcweir #define LPCTSTR PCSZ
37cdf0e10cSrcweir
38cdf0e10cSrcweir #else
39cdf0e10cSrcweir
40cdf0e10cSrcweir #include <tools/prewin.h>
41cdf0e10cSrcweir #include <ddeml.h>
42cdf0e10cSrcweir #include <tools/postwin.h>
43cdf0e10cSrcweir #include "ddewrap.hxx"
44cdf0e10cSrcweir
45cdf0e10cSrcweir /*
46cdf0e10cSrcweir extern "C"
47cdf0e10cSrcweir {
48cdf0e10cSrcweir #define sal_Bool WIN_BOOL
49cdf0e10cSrcweir #define sal_uInt8 WIN_BYTE
50cdf0e10cSrcweir #undef sal_Bool
51cdf0e10cSrcweir #undef sal_uInt8
52cdf0e10cSrcweir };
53cdf0e10cSrcweir */
54cdf0e10cSrcweir
55cdf0e10cSrcweir #endif
56cdf0e10cSrcweir #include <tools/string.hxx>
57cdf0e10cSrcweir #include <tools/list.hxx>
58cdf0e10cSrcweir #include <tools/shl.hxx>
59cdf0e10cSrcweir
60cdf0e10cSrcweir class DdeService;
61cdf0e10cSrcweir class DdeTopic;
62cdf0e10cSrcweir class DdeItem;
63cdf0e10cSrcweir class DdeTopics;
64cdf0e10cSrcweir class DdeItems;
65cdf0e10cSrcweir
66cdf0e10cSrcweir // ----------------
67cdf0e10cSrcweir // - Conversation -
68cdf0e10cSrcweir // ----------------
69cdf0e10cSrcweir
70cdf0e10cSrcweir struct Conversation
71cdf0e10cSrcweir {
72cdf0e10cSrcweir HCONV hConv;
73cdf0e10cSrcweir DdeTopic* pTopic;
74cdf0e10cSrcweir };
75cdf0e10cSrcweir
76cdf0e10cSrcweir DECLARE_LIST( ConvList, Conversation* );
77cdf0e10cSrcweir
78cdf0e10cSrcweir // ---------------
79cdf0e10cSrcweir // - DdeInternal -
80cdf0e10cSrcweir // ---------------
81cdf0e10cSrcweir
82cdf0e10cSrcweir class DdeInternal
83cdf0e10cSrcweir {
84cdf0e10cSrcweir public:
85cdf0e10cSrcweir #ifdef WNT
86cdf0e10cSrcweir static HDDEDATA CALLBACK CliCallback
87cdf0e10cSrcweir ( WORD, WORD, HCONV, HSZ, HSZ, HDDEDATA, DWORD, DWORD );
88cdf0e10cSrcweir static HDDEDATA CALLBACK SvrCallback
89cdf0e10cSrcweir ( WORD, WORD, HCONV, HSZ, HSZ, HDDEDATA, DWORD, DWORD );
90cdf0e10cSrcweir static HDDEDATA CALLBACK InfCallback
91cdf0e10cSrcweir ( WORD, WORD, HCONV, HSZ, HSZ, HDDEDATA, DWORD, DWORD );
92cdf0e10cSrcweir #else
93cdf0e10cSrcweir #if defined ( MTW ) || ( defined ( GCC ) && defined ( OS2 )) || defined( ICC )
94cdf0e10cSrcweir static HDDEDATA CALLBACK __EXPORT CliCallback
95cdf0e10cSrcweir ( WORD, WORD, HCONV, HSZ, HSZ, HDDEDATA, DWORD, DWORD );
96cdf0e10cSrcweir static HDDEDATA CALLBACK __EXPORT SvrCallback
97cdf0e10cSrcweir ( WORD, WORD, HCONV, HSZ, HSZ, HDDEDATA, DWORD, DWORD );
98cdf0e10cSrcweir static HDDEDATA CALLBACK __EXPORT InfCallback
99cdf0e10cSrcweir ( WORD, WORD, HCONV, HSZ, HSZ, HDDEDATA, DWORD, DWORD );
100cdf0e10cSrcweir #else
101cdf0e10cSrcweir static HDDEDATA CALLBACK _export CliCallback
102cdf0e10cSrcweir ( WORD, WORD, HCONV, HSZ, HSZ, HDDEDATA, DWORD, DWORD );
103cdf0e10cSrcweir static HDDEDATA CALLBACK _export SvrCallback
104cdf0e10cSrcweir ( WORD, WORD, HCONV, HSZ, HSZ, HDDEDATA, DWORD, DWORD );
105cdf0e10cSrcweir static HDDEDATA CALLBACK _export InfCallback
106cdf0e10cSrcweir ( WORD, WORD, HCONV, HSZ, HSZ, HDDEDATA, DWORD, DWORD );
107cdf0e10cSrcweir #endif
108cdf0e10cSrcweir #endif
109cdf0e10cSrcweir static DdeService* FindService( HSZ );
110cdf0e10cSrcweir static DdeTopic* FindTopic( DdeService&, HSZ );
111cdf0e10cSrcweir static DdeItem* FindItem( DdeTopic&, HSZ );
112cdf0e10cSrcweir };
113cdf0e10cSrcweir
114cdf0e10cSrcweir // -------------
115cdf0e10cSrcweir // - DdeString -
116cdf0e10cSrcweir // -------------
117cdf0e10cSrcweir
118cdf0e10cSrcweir class DdeString : public String
119cdf0e10cSrcweir {
120cdf0e10cSrcweir protected:
121cdf0e10cSrcweir HSZ hString;
122cdf0e10cSrcweir DWORD hInst;
123cdf0e10cSrcweir
124cdf0e10cSrcweir public:
125cdf0e10cSrcweir DdeString( DWORD, const sal_Unicode* );
126cdf0e10cSrcweir DdeString( DWORD, const String& );
127cdf0e10cSrcweir ~DdeString();
128cdf0e10cSrcweir
129cdf0e10cSrcweir int operator==( HSZ );
130cdf0e10cSrcweir operator HSZ();
131cdf0e10cSrcweir };
132cdf0e10cSrcweir
133cdf0e10cSrcweir // --------------
134cdf0e10cSrcweir // - DdeDataImp -
135cdf0e10cSrcweir // --------------
136cdf0e10cSrcweir
137cdf0e10cSrcweir struct DdeDataImp
138cdf0e10cSrcweir {
139cdf0e10cSrcweir HDDEDATA hData;
140cdf0e10cSrcweir LPBYTE pData;
141cdf0e10cSrcweir long nData;
142cdf0e10cSrcweir sal_uLong nFmt;
143cdf0e10cSrcweir };
144cdf0e10cSrcweir
145cdf0e10cSrcweir class DdeConnections;
146cdf0e10cSrcweir class DdeServices;
147cdf0e10cSrcweir
148cdf0e10cSrcweir struct DdeInstData
149cdf0e10cSrcweir {
150cdf0e10cSrcweir sal_uInt16 nRefCount;
151cdf0e10cSrcweir DdeConnections* pConnections;
152cdf0e10cSrcweir // Server
153*c4c57a27SDamjan Jovanovic HCONV hCurConvSvr;
154*c4c57a27SDamjan Jovanovic DWORD hDdeInstSvr;
155cdf0e10cSrcweir short nInstanceSvr;
156cdf0e10cSrcweir DdeServices* pServicesSvr;
157cdf0e10cSrcweir // Client
158*c4c57a27SDamjan Jovanovic DWORD hDdeInstCli;
159cdf0e10cSrcweir short nInstanceCli;
160cdf0e10cSrcweir };
161cdf0e10cSrcweir
162cdf0e10cSrcweir #ifndef SHL_SVDDE
163cdf0e10cSrcweir #define SHL_SVDDE SHL_SHL2
164cdf0e10cSrcweir #endif
165cdf0e10cSrcweir
ImpGetInstData()166cdf0e10cSrcweir inline DdeInstData* ImpGetInstData()
167cdf0e10cSrcweir {
168cdf0e10cSrcweir return (DdeInstData*)(*GetAppData( SHL_SVDDE ));
169cdf0e10cSrcweir }
170cdf0e10cSrcweir DdeInstData* ImpInitInstData();
171cdf0e10cSrcweir void ImpDeinitInstData();
172cdf0e10cSrcweir
173cdf0e10cSrcweir #endif // _DDEIMP_HXX
174