カレンダ更新API(Mp_SetCalendar2)について説明します。
記述形式
int Mp_SetCalendar2 (char *APL_name, |
機能説明
Mp_SetCalendar2関数は、カレンダ情報の更新(指定カレンダが存在しない場合は、登録として扱う)を行います。第何週目の何曜日といった、年ごとに日付が変動する休日および振替休日の情報も更新できます。
SYSTEM_CALENDARについては、更新できません。
また、過去の日付は、設定できません。
パラメタの説明
APL_name
要求元アプリケーション名(64バイト以内)の格納領域アドレスを指定します。
終わりはNULLを指定してください。“Mp_”および“_CAL_”の文字列で始まる名前は、使用しないでください。
cal_name
更新するカレンダ名の格納領域アドレスを指定します。カレンダ名は、24バイト以内で終わりにNULLを指定してください。
cal_dat2
カレンダ更新情報構造体(CALENDAR_WDAT2)のアドレスを指定します。
カレンダ更新情報構造体については、“17.1.2 カレンダ登録API(Mp_AddCalendar2)”を参照してください。
復帰値
復帰値 | 意 味 | 対 処 |
---|---|---|
0 | 正常終了しました。 | - |
-5 | SYSTEM_CALENDARが指定されました。 | SYSTEM_CALENDAR以外を指定してください。 |
-6 | システム管理者(Administratorsグループに属するユーザまたはスーパーユーザ)ではありません。 | システム管理者(Administratorsグループに属するユーザまたはスーパーユーザ)で実行してください。 |
-8 | カレンダ情報に誤りがあります。 | 指定したカレンダ情報(カレンダ更新情報構造体(CALENDAR_WDAT2))を見直してください。 |
-10 | カレンダサービス/カレンダデーモンが動作していません。 | カレンダサービス/カレンダデーモンを起動してください。 |
-11 | メモリ不足です。 | 以下の方法などで、使用できるメモリを増やしてください。 |
-15 | カレンダ名に指定できない文字を指定しました。 | カレンダ名に使用できない文字を指定しないでください。 |
-16 | ファイル操作に失敗しました(writeエラー)。 | ハードディスクの空き容量があるか確認してください。ハードディスクに異常がないか確認してください。 |
-17 | カレンダ名長が不当です。 | カレンダ名を24バイト以内で指定してください。 |
プログラム例
カレンダ更新APIのプログラム例を以下に示します。
#include <stdio.h> #include <stdlib.h> #include <malloc.h> #include <string.h> #include <f3crhcap.h> extern void set_cal_dat2( CALENDAR_WDAT2 *) ; void main() { int ret ; int count ; CALENDAR_WDAT2 cal_dat2 ; /*..........初期化 ..........*/ memset( &cal_dat2, 0x00, sizeof( CALENDAR_WDAT2) ) ; /*..........カレンダ情報の設定 ..........*/ /*今年を設定 */ cal_dat2.year = 2000 ; /* 振替休日を有効にする */ cal_dat2.sub_holiday = 1 ; /*毎週日曜を休日にする */ for ( count = 0 ; count < 12 ; count++ ){ cal_dat2.holiday_w[count] = (unsigned char)0x80 ; } /* 3年分のカレンダ情報を設定する */ set_cal_dat2( &cal_dat2 ) ; /*カレンダの更新 */ ret = Mp_SetCalendar2( "Test Pro", "calendar_1", &cal_dat2 ) ; printf( "ret= %d\n", ret ) ; exit ( 0 ) ; }