共用方式為


SetCalendarInfoW 函式 (winnls.h)

設定行事曆的地區設定信息專案。 如需詳細資訊,請參閱 Date 和 Calendar

語法

BOOL SetCalendarInfoW(
  [in] LCID    Locale,
  [in] CALID   Calendar,
  [in] CALTYPE CalType,
  [in] LPCWSTR lpCalData
);

參數

[in] Locale

指定地區設定的地區設定標識碼。 您可以使用 MAKELCID 巨集來建立地區設定識別碼,或使用下列其中一個預先定義的值。

也支援下列自定義地區設定標識碼。

[in] Calendar

要為其設定資訊的行事曆 行事曆標識符。

[in] CalType

要設定的行事曆信息類型。 只有下列 CALTYPE 值才對這個函式有效。 CAL_USE_CP_ACP常數只對函式的 ANSI 版本有意義。

  • CAL_USE_CP_ACP
  • CAL_ITWODIGITYEARMAX
應用程式只能為每個呼叫此函式指定一個行事曆標識符。 如果應用程式使用二進位 OR 運算符來結合CAL_USE_CP_ACP與 行事曆類型資訊中定義的任何有效 CALTYPE 值,則可能會發生例外狀況。

[in] lpCalData

Null 終止行事曆資訊字串的指標。 資訊的格式必須是指定的行事曆類型。

傳回值

如果成功,則傳回非零值,否則傳回 0。 若要取得擴充的錯誤資訊,應用程式可以呼叫 getLastError,以傳回下列其中一個錯誤碼:

  • ERROR_INTERNAL_ERROR。 函式中發生未預期的錯誤。
  • ERROR_INVALID_FLAGS。 為旗標的值無效。
  • ERROR_INVALID_PARAMETER。 任何參數值都無效。

言論

此函式只會影響使用者覆寫行事曆設定的部分。 它不會設定系統預設值。

行事曆資訊一律會在此函式的 Unicode 版本中傳遞為 Null 終止的 Unicode 字串,並在 ANSI 版本中以 Null 終止的 ANSI 字串的形式傳遞。 此函式不允許任何整數。 任何數值都必須指定為 Unicode 或 ANSI 文字。

當此函式的 ANSI 版本搭配僅限 Unicode 的地區設定識別碼使用時,函式可能會成功,因為操作系統會使用系統代碼頁。 不過,系統代碼頁中未定義的字元會以問號 (?) 的形式出現在字串中。

CAL_ITWODIGITYEARMAX可以搭配任何行事曆使用,即使指定的地區設定不支援行事曆也一樣。 為了避免複雜情況,應用程式應該呼叫 EnumCalendarInfo,以確保符合相關地區設定的行事曆。

注意

winnls.h 標頭會根據 UNICODE 預處理器常數的定義,將 SetCalendarInfo 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
支援的最低伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平臺 窗戶
標頭 winnls.h (包括 Windows.h)
連結庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

EnumCalendarInfo

GetCalendarInfo

國家語言支援

國家語言支援函式