1 #ifndef TWrapperFunctions2_h__
2 #define TWrapperFunctions2_h__ 1
17 template <
typename className >
18 void CallSafeFunctionReturningVoid( className * ptr,
22 ( ptr->*Func )( error );
23 if ( error )
throw IError::MakeShared( error );
26 template<
typename className,
typename t1 >
27 void CallSafeFunctionReturningVoid( className * ptr,
28 void ( APICALL className::*Func )( t1,
pcIError_base & ), t1 v1 )
31 ( ptr->*Func )( v1, error );
32 if ( error )
throw IError::MakeShared( error );
35 template<
typename className,
typename t1,
typename t2 >
36 void CallSafeFunctionReturningVoid( className * ptr,
37 void ( APICALL className::*Func )( t1, t2,
pcIError_base & ), t1 v1, t2 v2 )
40 ( ptr->*Func )( v1, v2, error );
41 if ( error )
throw IError::MakeShared( error );
44 template<
typename className,
typename t1,
typename t2,
typename t3 >
45 void CallSafeFunctionReturningVoid( className * ptr,
46 void ( APICALL className::*Func )( t1, t2, t3,
pcIError_base & ), t1 v1, t2 v2, t3 v3 )
49 ( ptr->*Func )( v1, v2, v3, error );
50 if ( error )
throw IError::MakeShared( error );
53 template<
typename className,
typename t1,
typename t2,
typename t3,
typename t4 >
54 void CallSafeFunctionReturningVoid( className * ptr,
55 void ( APICALL className::*Func )( t1, t2, t3, t4,
pcIError_base & ), t1 v1, t2 v2, t3 v3, t4 v4 )
58 ( ptr->*Func )( v1, v2, v3, v4, error );
59 if ( error )
throw IError::MakeShared( error );
62 template<
typename className,
typename t1,
typename t2,
typename t3,
typename t4,
typename t5 >
63 void CallSafeFunctionReturningVoid( className * ptr,
64 void ( APICALL className::*Func )( t1, t2, t3, t4, t5,
pcIError_base & ), t1 v1, t2 v2, t3 v3, t4 v4, t5 v5 )
67 ( ptr->*Func )( v1, v2, v3, v4, v5, error );
68 if ( error )
throw IError::MakeShared( error );
71 template<
typename className,
typename t1,
typename t2,
typename t3,
typename t4,
typename t5,
typename t6 >
72 void CallSafeFunctionReturningVoid( className * ptr,
73 void ( APICALL className::*Func )( t1, t2, t3, t4, t5, t6,
pcIError_base & ), t1 v1, t2 v2, t3 v3, t4 v4, t5 v5, t6 v6 )
76 ( ptr->*Func )( v1, v2, v3, v4, v5, error );
77 if ( error )
throw IError::MakeShared( error );
80 template <
typename className >
81 void CallConstSafeFunctionReturningVoid(
const className *
const ptr,
85 ( ptr->*Func )( error );
86 if ( error )
throw IError::MakeShared( error );
89 template <
typename className,
typename t1 >
90 void CallConstSafeFunctionReturningVoid(
const className *
const ptr,
91 void ( APICALL className::*Func )( t1,
pcIError_base & )
const, t1 v1 )
94 ( ptr->*Func )( v1, error );
95 if ( error )
throw IError::MakeShared( error );
98 template <
typename className,
typename t1,
typename t2 >
99 void CallConstSafeFunctionReturningVoid(
const className *
const ptr,
100 void ( APICALL className::*Func )( t1, t2,
pcIError_base & )
const, t1 v1, t2 v2 )
103 ( ptr->*Func )( v1, v2, error );
104 if ( error )
throw IError::MakeShared( error );
107 template <
typename className,
typename t1,
typename t2,
typename t3 >
108 void CallConstSafeFunctionReturningVoid(
const className *
const ptr,
109 void ( APICALL className::*Func )( t1, t2, t3,
pcIError_base & )
const, t1 v1, t2 v2, t3 v3 )
112 ( ptr->*Func )( v1, v2, v3, error );
113 if ( error )
throw IError::MakeShared( error );
116 template <
typename className,
typename t1,
typename t2,
typename t3,
typename t4 >
117 void CallConstSafeFunctionReturningVoid(
const className *
const ptr,
118 void ( APICALL className::*Func )( t1, t2, t3, t4,
pcIError_base & )
const, t1 v1, t2 v2, t3 v3, t4 v4 )
121 ( ptr->*Func )( v1, v2, v3, v4, error );
122 if ( error )
throw IError::MakeShared( error );
125 template <
typename className,
typename t1,
typename t2,
typename t3,
typename t4,
typename t5 >
126 void CallConstSafeFunctionReturningVoid(
const className *
const ptr,
127 void ( APICALL className::*Func )( t1, t2, t3, t4, t5,
pcIError_base & )
const, t1 v1, t2 v2, t3 v3, t4 v4, t5 v5 )
130 ( ptr->*Func )( v1, v2, v3, v4, v5, error );
131 if ( error )
throw IError::MakeShared( error );
135 template <
typename className,
typename returnType,
typename internalReturnType >
136 returnType CallSafeFunction( className * ptr,
137 internalReturnType ( APICALL className::*Func )(
pcIError_base & ) )
140 internalReturnType returnValue = (ptr->*Func)( error );
141 if ( error )
throw IError::MakeShared( error );
143 #pragma warning( push )
144 #pragma warning( disable : 4800 )
146 return static_cast< returnType
>( returnValue );
148 #pragma warning( pop )
152 template <
typename className,
typename returnType,
typename internalReturnType,
typename t1 >
153 returnType CallSafeFunction( className * ptr,
154 internalReturnType ( APICALL className::*Func )( t1,
pcIError_base & ), t1 v1 )
157 internalReturnType returnValue = (ptr->*Func)( v1, error );
158 if ( error )
throw IError::MakeShared( error );
160 #pragma warning( push )
161 #pragma warning( disable : 4800 )
163 return static_cast< returnType
>( returnValue );
165 #pragma warning( pop )
169 template <
typename className,
typename returnType,
typename internalReturnType,
typename t1,
typename t2 >
170 returnType CallSafeFunction( className * ptr,
171 internalReturnType ( APICALL className::*Func )( t1, t2,
pcIError_base & ), t1 v1, t2 v2 )
174 internalReturnType returnValue = (ptr->*Func)( v1, v2, error );
175 if ( error )
throw IError::MakeShared( error );
177 #pragma warning( push )
178 #pragma warning( disable : 4800 )
180 return static_cast< returnType
>( returnValue );
182 #pragma warning( pop )
186 template <
typename className,
typename returnType,
typename internalReturnType,
typename t1,
typename t2,
typename t3 >
187 returnType CallSafeFunction( className * ptr,
188 internalReturnType( APICALL className::*Func )( t1, t2, t3,
pcIError_base & ), t1 v1, t2 v2, t3 v3 )
191 internalReturnType returnValue = ( ptr->*Func )( v1, v2, v3, error );
192 if ( error )
throw IError::MakeShared( error );
194 #pragma warning( push )
195 #pragma warning( disable : 4800 )
197 return static_cast< returnType
>( returnValue );
199 #pragma warning( pop )
203 template <
typename className,
typename returnType,
typename internalReturnType,
typename t1,
typename t2,
typename t3,
typename t4 >
204 returnType CallSafeFunction( className * ptr,
205 internalReturnType( APICALL className::*Func )( t1, t2, t3, t4,
pcIError_base & ), t1 v1, t2 v2, t3 v3, t4 v4 )
208 internalReturnType returnValue = ( ptr->*Func )( v1, v2, v3, v4, error );
209 if ( error )
throw IError::MakeShared( error );
211 #pragma warning( push )
212 #pragma warning( disable : 4800 )
214 return static_cast< returnType
>( returnValue );
216 #pragma warning( pop )
220 template <
typename className,
typename returnType,
typename internalReturnType,
typename t1,
typename t2,
typename t3,
typename t4,
typename t5 >
221 returnType CallSafeFunction( className * ptr,
222 internalReturnType( APICALL className::*Func )( t1, t2, t3, t4, t5,
pcIError_base & ), t1 v1, t2 v2, t3 v3, t4 v4, t5 v5 )
225 internalReturnType returnValue = ( ptr->*Func )( v1, v2, v3, v4, v5, error );
226 if ( error )
throw IError::MakeShared( error );
228 #pragma warning( push )
229 #pragma warning( disable : 4800 )
231 return static_cast< returnType
>( returnValue );
233 #pragma warning( pop )
239 template <
typename className,
typename returnType,
typename internalReturnType,
typename t1,
typename t2,
typename t3,
typename t4,
typename t5,
typename t6 >
240 returnType CallSafeFunction( className * ptr,
241 internalReturnType( APICALL className::*Func )( t1, t2, t3, t4, t5, t6,
pcIError_base & ), t1 v1, t2 v2, t3 v3, t4 v4, t5 v5, t6 v6 )
244 internalReturnType returnValue = ( ptr->*Func )( v1, v2, v3, v4, v5, v6, error );
245 if ( error )
throw IError::MakeShared( error );
247 #pragma warning( push )
248 #pragma warning( disable : 4800 )
250 return static_cast< returnType
>( returnValue );
252 #pragma warning( pop )
256 template <
typename className,
typename returnType,
typename internalReturnType >
257 returnType CallConstSafeFunction(
const className *
const ptr,
258 internalReturnType ( APICALL className::*Func )(
pcIError_base & )
const )
261 internalReturnType returnValue = (ptr->*Func)( error );
262 if ( error )
throw IError::MakeShared( error );
264 #pragma warning( push )
265 #pragma warning( disable : 4800 )
267 return static_cast< returnType
>( returnValue );
269 #pragma warning( pop )
273 template <
typename className,
typename returnType,
typename internalReturnType,
typename t1 >
274 returnType CallConstSafeFunction(
const className *
const ptr,
275 internalReturnType ( APICALL className::*Func )( t1,
pcIError_base & )
const, t1 v1 )
278 internalReturnType returnValue = (ptr->*Func)( v1, error );
279 if ( error )
throw IError::MakeShared( error );
281 #pragma warning( push )
282 #pragma warning( disable : 4800 )
284 return static_cast< returnType
>( returnValue );
286 #pragma warning( pop )
290 template <
typename className,
typename returnType,
typename internalReturnType,
typename t1,
typename t2 >
291 returnType CallConstSafeFunction(
const className *
const ptr,
292 internalReturnType ( APICALL className::*Func )( t1, t2,
pcIError_base & )
const, t1 v1, t2 v2 )
295 internalReturnType returnValue = (ptr->*Func)( v1, v2, error );
296 if ( error )
throw IError::MakeShared( error );
298 #pragma warning( push )
299 #pragma warning( disable : 4800 )
301 return static_cast< returnType
>( returnValue );
303 #pragma warning( pop )
307 template <
typename className,
typename returnType,
typename internalReturnType,
typename t1,
typename t2,
typename t3 >
308 returnType CallConstSafeFunction(
const className *
const ptr,
309 internalReturnType ( APICALL className::*Func )( t1, t2, t3,
pcIError_base & )
const, t1 v1, t2 v2, t3 v3 )
312 internalReturnType returnValue = (ptr->*Func)( v1, v2, v3, error );
313 if ( error )
throw IError::MakeShared( error );
315 #pragma warning( push )
316 #pragma warning( disable : 4800 )
318 return static_cast< returnType
>( returnValue );
320 #pragma warning( pop )
324 template <
typename className,
typename returnType,
typename internalReturnType,
typename t1,
typename t2,
typename t3,
typename t4 >
325 returnType CallConstSafeFunction(
const className *
const ptr,
326 internalReturnType ( APICALL className::*Func )( t1, t2, t3, t4,
pcIError_base & )
const, t1 v1, t2 v2, t3 v3, t4 v4 )
329 internalReturnType returnValue = (ptr->*Func)( v1, v2, v3, v4, error );
330 if ( error )
throw IError::MakeShared( error );
332 #pragma warning( push )
333 #pragma warning( disable : 4800 )
335 return static_cast< returnType
>( returnValue );
337 #pragma warning( pop )
341 template <
typename className,
typename returnType,
typename internalReturnType,
typename t1,
typename t2,
typename t3,
typename t4,
typename t5 >
342 returnType CallConstSafeFunction(
const className *
const ptr,
343 internalReturnType ( APICALL className::*Func )( t1, t2, t3, t4, t5,
pcIError_base & )
const, t1 v1, t2 v2, t3 v3, t4 v4, t5 v5 )
346 internalReturnType returnValue = (ptr->*Func)( v1, v2, v3, v4, v5, error );
347 if ( error )
throw IError::MakeShared( error );
349 #pragma warning( push )
350 #pragma warning( disable : 4800 )
352 return static_cast< returnType
>( returnValue );
354 #pragma warning( pop )
360 template <
typename className,
typename returnType,
typename internalReturnType,
typename t1,
typename t2,
typename t3,
typename t4,
typename t5,
typename t6 >
361 returnType CallConstSafeFunction(
const className *
const ptr,
362 internalReturnType ( APICALL className::*Func )( t1, t2, t3, t4, t5, t6,
pcIError_base & )
const, t1 v1, t2 v2, t3 v3, t4 v4, t5 v5, t6 v6 )
365 internalReturnType returnValue = (ptr->*Func)( v1, v2, v3, v4, v5, v6, error );
366 if ( error )
throw IError::MakeShared( error );
368 #pragma warning( push )
369 #pragma warning( disable : 4800 )
371 return static_cast< returnType
>( returnValue );
373 #pragma warning( pop )
377 template <
typename className,
typename returnType,
typename internalReturnType,
typename t1,
typename t2,
typename t3,
typename t4,
typename t5,
typename t6,
typename t7 >
378 returnType CallConstSafeFunction(
const className *
const ptr,
379 internalReturnType ( APICALL className::*Func )( t1, t2, t3, t4, t5, t6, t7,
pcIError_base & )
const, t1 v1, t2 v2, t3 v3, t4 v4, t5 v5, t6 v6, t7 v7 )
382 internalReturnType returnValue = (ptr->*Func)( v1, v2, v3, v4, v5, v6, v7, error );
383 if ( error )
throw IError::MakeShared( error );
385 #pragma warning( push )
386 #pragma warning( disable : 4800 )
388 return static_cast< returnType
>( returnValue );
390 #pragma warning( pop )
395 template <
typename className,
typename returnType,
typename internalReturnType,
typename t1,
typename t2,
typename t3,
typename t4,
typename t5,
typename t6,
typename t7,
typename t8,
typename t9 >
396 returnType CallConstSafeFunction(
const className *
const ptr,
397 internalReturnType ( APICALL className::*Func )( t1, t2, t3, t4, t5, t6, t7, t8, t9,
pcIError_base & )
const, t1 v1, t2 v2, t3 v3, t4 v4, t5 v5, t6 v6, t7 v7, t8 v8, t9 v9 )
400 internalReturnType returnValue = (ptr->*Func)( v1, v2, v3, v4, v5, v6, v7, v8, v9, error );
401 if ( error )
throw IError::MakeShared( error );
403 #pragma warning( push )
404 #pragma warning( disable : 4800 )
406 return static_cast< returnType
>( returnValue );
408 #pragma warning( pop )
414 template <
typename className,
typename internalReturnType,
typename sharedPo
interType >
415 shared_ptr< sharedPointerType > CallSafeFunctionReturningPointer( className * ptr,
416 internalReturnType( APICALL className::*Func )(
pcIError_base & ) )
419 internalReturnType returnValue = ( ptr->*Func )( error );
420 if ( error )
throw IError::MakeShared( error );
421 return sharedPointerType::MakeShared( returnValue );
424 template <
typename className,
typename internalReturnType,
typename sharedPo
interType,
typename t1 >
425 shared_ptr< sharedPointerType > CallSafeFunctionReturningPointer( className * ptr,
426 internalReturnType( APICALL className::*Func )( t1,
pcIError_base & ), t1 v1 )
429 internalReturnType returnValue = ( ptr->*Func )( v1, error );
430 if ( error )
throw IError::MakeShared( error );
431 return sharedPointerType::MakeShared( returnValue );
434 template <
typename className,
typename internalReturnType,
typename sharedPo
interType,
typename t1,
typename t2 >
435 shared_ptr< sharedPointerType > CallSafeFunctionReturningPointer( className * ptr,
436 internalReturnType( APICALL className::*Func )( t1, t2,
pcIError_base & ), t1 v1, t2 v2 )
439 internalReturnType returnValue = ( ptr->*Func )( v1, v2, error );
440 if ( error )
throw IError::MakeShared( error );
441 return sharedPointerType::MakeShared( returnValue );
444 template <
typename className,
typename internalReturnType,
typename sharedPo
interType,
typename t1,
typename t2,
typename t3 >
445 shared_ptr< sharedPointerType > CallSafeFunctionReturningPointer( className * ptr,
446 internalReturnType( APICALL className::*Func )( t1, t2, t3,
pcIError_base & ), t1 v1, t2 v2, t3 v3 )
449 internalReturnType returnValue = ( ptr->*Func )( v1, v2, v3, error );
450 if ( error )
throw IError::MakeShared( error );
451 return sharedPointerType::MakeShared( returnValue );
454 template <
typename className,
typename internalReturnType,
typename sharedPo
interType,
typename t1,
typename t2,
typename t3,
typename t4 >
455 shared_ptr< sharedPointerType > CallSafeFunctionReturningPointer( className * ptr,
456 internalReturnType( APICALL className::*Func )( t1, t2, t3, t4,
pcIError_base & ), t1 v1, t2 v2, t3 v3, t4 v4 )
459 internalReturnType returnValue = ( ptr->*Func )( v1, v2, v3, v4, error );
460 if ( error )
throw IError::MakeShared( error );
461 return sharedPointerType::MakeShared( returnValue );
464 template <
typename className,
typename internalReturnType,
typename sharedPo
interType,
typename t1,
typename t2,
typename t3,
typename t4,
typename t5 >
465 shared_ptr< sharedPointerType > CallSafeFunctionReturningPointer( className * ptr,
466 internalReturnType( APICALL className::*Func )( t1, t2, t3, t4, t5,
pcIError_base & ), t1 v1, t2 v2, t3 v3, t4 v4, t5 v5 )
469 internalReturnType returnValue = ( ptr->*Func )( v1, v2, v3, v4, v5, error );
470 if ( error )
throw IError::MakeShared( error );
471 return sharedPointerType::MakeShared( returnValue );
474 template <
typename className,
typename internalReturnType,
typename sharedPo
interType,
typename t1,
typename t2,
typename t3,
typename t4,
typename t5,
typename t6 >
475 shared_ptr< sharedPointerType > CallSafeFunctionReturningPointer( className * ptr,
476 internalReturnType( APICALL className::*Func )( t1, t2, t3, t4, t5, t6,
pcIError_base & ), t1 v1, t2 v2, t3 v3, t4 v4, t5 v5, t6 v6 )
479 internalReturnType returnValue = ( ptr->*Func )( v1, v2, v3, v4, v5, v6, error );
480 if ( error )
throw IError::MakeShared( error );
481 return sharedPointerType::MakeShared( returnValue );
484 template <
typename className,
typename internalReturnType,
typename sharedPo
interType >
485 shared_ptr< sharedPointerType > CallConstSafeFunctionReturningPointer(
const className *
const ptr,
486 internalReturnType( APICALL className::*Func )(
pcIError_base & )
const )
489 internalReturnType returnValue = ( ptr->*Func )( error );
490 if ( error )
throw IError::MakeShared( error );
491 return sharedPointerType::MakeShared( returnValue );
494 template <
typename className,
typename internalReturnType,
typename sharedPo
interType,
typename t1 >
495 shared_ptr< sharedPointerType > CallConstSafeFunctionReturningPointer(
const className *
const ptr,
496 internalReturnType( APICALL className::*Func )( t1,
pcIError_base & )
const, t1 v1 )
499 internalReturnType returnValue = ( ptr->*Func )( v1, error );
500 if ( error )
throw IError::MakeShared( error );
501 return sharedPointerType::MakeShared( returnValue );
504 template <
typename className,
typename internalReturnType,
typename sharedPo
interType,
typename t1,
typename t2 >
505 shared_ptr< sharedPointerType > CallConstSafeFunctionReturningPointer(
const className *
const ptr,
506 internalReturnType( APICALL className::*Func )( t1, t2,
pcIError_base & )
const, t1 v1, t2 v2 )
509 internalReturnType returnValue = ( ptr->*Func )( v1, v2, error );
510 if ( error )
throw IError::MakeShared( error );
511 return sharedPointerType::MakeShared( returnValue );
514 template <
typename className,
typename internalReturnType,
typename sharedPo
interType,
typename t1,
typename t2,
typename t3 >
515 shared_ptr< sharedPointerType > CallConstSafeFunctionReturningPointer(
const className *
const ptr,
516 internalReturnType( APICALL className::*Func )( t1, t2, t3,
pcIError_base & )
const, t1 v1, t2 v2, t3 v3 )
519 internalReturnType returnValue = ( ptr->*Func )( v1, v2, v3, error );
520 if ( error )
throw IError::MakeShared( error );
521 return sharedPointerType::MakeShared( returnValue );
524 template <
typename className,
typename internalReturnType,
typename sharedPo
interType,
typename t1,
typename t2,
typename t3,
typename t4 >
525 shared_ptr< sharedPointerType > CallConstSafeFunctionReturningPointer(
const className *
const ptr,
526 internalReturnType( APICALL className::*Func )( t1, t2, t3, t4,
pcIError_base & )
const, t1 v1, t2 v2, t3 v3, t4 v4 )
529 internalReturnType returnValue = ( ptr->*Func )( v1, v2, v3, v4, error );
530 if ( error )
throw IError::MakeShared( error );
531 return sharedPointerType::MakeShared( returnValue );
534 template <
typename className,
typename internalReturnType,
typename sharedPo
interType,
typename t1,
typename t2,
typename t3,
typename t4,
typename t5 >
535 shared_ptr< sharedPointerType > CallConstSafeFunctionReturningPointer(
const className *
const ptr,
536 internalReturnType( APICALL className::*Func )( t1, t2, t3, t4, t5,
pcIError_base & )
const, t1 v1, t2 v2, t3 v3, t4 v4, t5 v5 )
539 internalReturnType returnValue = ( ptr->*Func )( v1, v2, v3, v4, v5, error );
540 if ( error )
throw IError::MakeShared( error );
541 return sharedPointerType::MakeShared( returnValue );
544 template <
typename className,
typename internalReturnType,
typename sharedPo
interType,
typename t1,
typename t2,
typename t3,
typename t4,
typename t5,
typename t6 >
545 shared_ptr< sharedPointerType > CallConstSafeFunctionReturningPointer(
const className *
const ptr,
546 internalReturnType( APICALL className::*Func )( t1, t2, t3, t4, t5, t6,
pcIError_base & )
const, t1 v1, t2 v2, t3 v3, t4 v4, t5 v5, t6 v6 )
549 internalReturnType returnValue = ( ptr->*Func )( v1, v2, v3, v4, v5, v6, error );
550 if ( error )
throw IError::MakeShared( error );
551 return sharedPointerType::MakeShared( returnValue );
554 template <
typename className ,
typename internalReturnType ,
typename sharedPo
interType ,
typename t1 ,
typename t2 ,
typename t3 ,
typename t4 ,
typename t5 ,
typename t6 ,
typename t7 ,
typename t8 >
555 shared_ptr< sharedPointerType > CallConstSafeFunctionReturningPointer (
const className *
const ptr ,
556 internalReturnType ( APICALL className::*Func )(t1 , t2 , t3 , t4 , t5 , t6 , t7, t8 ,
pcIError_base &)
const , t1 v1 , t2 v2 , t3 v3 , t4 v4 , t5 v5 , t6 v6 , t7 v7 , t8 v8 )
559 internalReturnType returnValue = (ptr->*Func)(v1 , v2 , v3 , v4 , v5 , v6 , v7 , v8 , error);
560 if ( error )
throw IError::MakeShared ( error );
561 return sharedPointerType::MakeShared ( returnValue );
565 #endif // TWrapperFunctions2_h__