Solaris 共通デスクトップ環境 プログラマーズ・ガイド

カレンダへのログイン


例 10-3 カレンダにログインする

CSA_session_handle	cal;

logon() 
{
 	CSA_return_code		stat;
 	CSA_calendar_user	caddr;
 	CSA_flags		access;
 	CSA_extension		logon_exts[2];
 	CSA_X_COM_support	check_support[2];

  	/* ログインするカレンダを指定します */
caddr.user_name = NULL;
caddr.user_type = CSA_USER_TYPE_INDIVIDUAL;
caddr.calendar_address = "user@host";
caddr.calendar_user_extensions = NULL;

  	/* (CSA_X_DT_GET_USER_ACCESS_EXT) を指定して、
 	 * カレンダに関するユーザのアクセス権を取得します。
 	 */
logon_exts[0].item_code		= CSA_X_DT_GET_USER_ACCESS_EXT;
logon_exts[0].item_data		= 0;
logon_exts[0].item_reference	= NULL;
logon_exts[0].extension_flags	= NULL;

	/* CSA_X_COM_SUPPORT_EXT 拡張を指定して、
 	 * CSA_X_XT_APP_CONTEXT_EXT 拡張と、CSA_X_UI_ID_EXT 拡張が
 	 * サポートされているかどうかをチェックします。
 	 */
check_support[0].item_code	= CSA_X_XT_APP_CONTEXT_EXT;
check_support[0].flags		= NULL;
check_support[1].item_code	= CSA_X_UI_ID_EXT;
check_support[1].flags		= NULL;
logon_exts[1].item_code		= CSA_X_COM_SUPPORT_EXT;
logon_exts[1].item_data		= 2;
logon_exts[1].item_reference	= (CSA_buffer)check_support;
logon_exts[0].extension_flags	= CSA_EXT_LAST_ELEMENT;

  	stat = csa_logon(NULL, &caddr, NULL, NULL, NULL, &cal, logon_exts);

  	if (stat == CSA_SUCCESS) {
 		access = (CSA_flags)get_access_ext.item_data;
  		if (check_support[0].flag & CSA_X_COM_SUPPORTED)
 			printf("The CSA_X_XT_APP_CONTEXT_EXT extension is supported¥n");
  		if (check_support[1].flag & CSA_X_COM_SUPPORTED)
 			printf("The CSA_X_UI_ID_EXT extension is supported¥n");
 	}
 }