xref: /trunk/main/svl/source/svdde/ddeimp.hxx (revision c4c57a27)
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