/*******************************************************************************
*                              Openwave Systems.                               *
*                            Device Products Group                             *
*                               Shinjuku, Tokyo                                *
****************************************************************************//**
   @file
   このマクロファイルはExtensionによってサポートされる全てのパブリックな
   仮想関数を表記し、仮想関数のメンテナンスを容易にします。このマクロファイル
   に宣言の順番を変えるような変更を加えないでください。<b>コードが破壊されます</b>。

*//*
   REVISION HISTORY:
   Date:       Who:               Email:
      - Details:
--------------------------------------------------------------------------------
   23 Aug 2005 kawa               yoshihiro.kawaguchi@openwave.com
      - Initial version

*******************************************************************************/
/*******************************************************************************
*                  Copyright (c) Openwave Systems 1995-2005                    *
*                            All rights reserved.                              *
*                                                                              *
*     THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF Openwave Systems Inc.     *
*               The copyright notice above does not evidence any               *
*              actual or intended publication of such source code.             *
*******************************************************************************/

//Make Doxygen ignore this next section (note in V1.4.4 we must use cond as
//Doxygen doesn't do pre-processing in *.m files, so #ifndef doesn't work).
///@cond DOXYGEN_WILL_IGNORE_THIS
/*==============================================================================

	DUMMY DEFINES
	Blanks out anything that isn't defined when this macro file is included.

==============================================================================*/
/** @def FUNCTION
 このマクロはクラスでサポートされる仮想関数定義の開始を宣言するために
 iombsec.mファイルで使用されます。
 @param RETURNS 戻り値タイプ  例：char *, int, etc
 @param NAME 関数名
*/
#ifndef FUNCTION
   #define FUNCTION( RETURNS, NAME )
#endif

/**@def NO_PARAM
 このマクロは関数に引数がないことを宣言するために iombsec.mファイル
 で使用されます。
 @param なし
*/
#ifndef NO_PARAM
   #define NO_PARAM ///< void
#endif

/**@def FIRST_PARAM
 このマクロは関数に第一引数を宣言するために iombsec.mファイル
 で使用されます。
 @param TYPE 引数タイプ  例: char *, int, etc
 @param NAME 引数名
*/
#ifndef FIRST_PARAM
   #define FIRST_PARAM( TYPE, NAME )
#endif

/**@def NEXT_PARAM
 このマクロは関数に第一引数以降に続く引数を宣言するために iombsec.mファイル
 で使用されます。
 @param TYPE 引数タイプ 例: char *, int, etc
 @param NAME 引数名
*/
#ifndef NEXT_PARAM
   #define NEXT_PARAM( TYPE, NAME )
#endif

/**@def END_FUNCTION
 このマクロは関数定義の終わりを宣言するために iombsec.mファイル
 で使用されます。
 @param なし
*/
#ifndef END_FUNCTION
   #define END_FUNCTION	///< );
#endif


/*==============================================================================

	VIRTUAL FUNCTIONS

 ** DO NOT CHANGE THE ORDER OF THESE MACROS AS IT WILL BREAK THE SOFTWARE **

==============================================================================*/
//------------------------------------------------------------------------------
//--- This function must be first
//------------------------------------------------------------------------------
FUNCTION( uint32, lwIOMBSEC_AddRef )
FIRST_PARAM( tsIOMBSEC *, psIOMBSEC )
END_FUNCTION

//------------------------------------------------------------------------------
//--- This function must be second
//------------------------------------------------------------------------------
FUNCTION( uint32, lwIOMBSEC_Release )
FIRST_PARAM( tsIOMBSEC *, psIOMBSEC )
END_FUNCTION

//------------------------------------------------------------------------------
FUNCTION( boolean, HandleEvent )
FIRST_PARAM( tsIOMBSEC *, psIOMBSEC )
NEXT_PARAM( AEEEvent, eCode )
NEXT_PARAM( uint16, wp )
NEXT_PARAM( uint32, dwp )
END_FUNCTION

//------------------------------------------------------------------------------
FUNCTION( boolean, GetClientCertAndKeyUI )
FIRST_PARAM( tsIOMBSEC *, psIOMBSEC )
NEXT_PARAM( byte *, pbDNList )
NEXT_PARAM( int32, lwDNListLen )
NEXT_PARAM( PFNCLIENTCERTANDKEY, pfvCallBack )
NEXT_PARAM( void *, pvUser )
END_FUNCTION


/*==============================================================================

	UNDEFINES
	Allows this macro file to be included multiple times

==============================================================================*/
#undef FUNCTION
#undef NO_PARAM
#undef FIRST_PARAM
#undef NEXT_PARAM
#undef END_FUNCTION

///@endcond -- DOXYGEN_WILL_IGNORE_THIS
