1 // ------------------------------------------------------------------------------- 2 // 3 // DXライブラリ Windows専用関数プロトタイプ宣言用ヘッダファイル 4 // 5 // Ver 3.22c 6 // 7 // ------------------------------------------------------------------------------- 8 module dxlib_d.DxFunctionWin; 9 10 11 version (Windows): 12 13 nothrow @nogc: 14 15 private static import dxlib_d.DxLib; 16 public import dxlib_d.DxDataType; 17 18 // 関数プロトタイプ宣言------------------------------------------------------------------ 19 20 extern (C++, DxLib) { 21 // DxWindow.cpp関数プロトタイプ宣言 22 23 // 便利関数 24 25 /** 26 * 指定の名前、タイプのリソースのアドレスとサイズを取得する 27 * 28 * Returns: -1:失敗 0:成功 29 */ 30 extern int GetResourceInfo(const (dxlib_d.DxDataType.TCHAR)* ResourceName, const (dxlib_d.DxDataType.TCHAR)* ResourceType, void** DataPointerP, size_t* DataSizeP); 31 32 /** 33 * 指定の名前、タイプのリソースのアドレスとサイズを取得する 34 * 35 * Returns: -1:失敗 0:成功 36 */ 37 extern int GetResourceInfoWithStrLen(const (dxlib_d.DxDataType.TCHAR)* ResourceName, size_t ResourceNameLength, const (dxlib_d.DxDataType.TCHAR)* ResourceType, size_t ResourceTypeLength, void** DataPointerP, size_t* DataSizeP); 38 39 /** 40 * リソースID値からリソース名を取得する 41 */ 42 extern const (dxlib_d.DxDataType.TCHAR)* GetResourceIDString(int ResourceID); 43 44 // ウインドウ関係情報取得関数 45 46 /** 47 * GetWindowClientRectの旧名称 48 */ 49 extern int GetWindowCRect(dxlib_d.DxDataType.RECT* RectBuf); 50 51 /** 52 * メインウインドウのクライアント領域を取得する 53 */ 54 extern int GetWindowClientRect(dxlib_d.DxDataType.RECT* RectBuf); 55 56 /** 57 * メインウインドウの枠の部分も含めた全体の領域を取得する 58 */ 59 extern int GetWindowFrameRect(dxlib_d.DxDataType.RECT* RectBuf); 60 61 /** 62 * メインウインドウがアクティブかどうかを取得する 63 * 64 * Returns: dxlib_d.DxDataType.TRUE:アクティブ dxlib_d.DxDataType.FALSE:非アクティブ 65 */ 66 extern int GetWindowActiveFlag(); 67 68 /** 69 * メインウインドウが最小化されているかどうかを取得する 70 * 71 * Returns: dxlib_d.DxDataType.TRUE:最小化されている dxlib_d.DxDataType.FALSE:最小化されていない 72 */ 73 extern int GetWindowMinSizeFlag(); 74 75 /** 76 * メインウインドウが最大化されているかどうかを取得する 77 * 78 * Returns: dxlib_d.DxDataType.TRUE:最大化されている dxlib_d.DxDataType.FALSE:最大化されていない 79 */ 80 extern int GetWindowMaxSizeFlag(); 81 82 /** 83 * GetWindowActiveFlagの別名関数 84 */ 85 extern int GetActiveFlag(); 86 87 /** 88 * メインウインドウのウインドウハンドルを取得する 89 */ 90 extern dxlib_d.DxDataTypeWin.HWND GetMainWindowHandle(); 91 92 /** 93 * ウインドウモードで起動しているかどうかを取得する 94 * 95 * Returns: dxlib_d.DxDataType.TRUE:ウインドウモード dxlib_d.DxDataType.FALSE:フルスクリーンモード 96 */ 97 extern int GetWindowModeFlag(); 98 99 /** 100 * 起動時のデスクトップの画面情報を取得する 101 * 102 * Params: 103 * SizeX = デスクトップの横解像度を格納する変数のポインタ 104 * SizeY = 縦解像度を格納する変数のポインタ 105 * ColorBitDepth = 画面カラービット数を格納する変数のポインタ 106 * RefreshRate = デスクトップのリフレッシュレートを格納する変数のポインタ 107 * LeftTopX = デスクトップの左上X座標を格納する変数のポインタ 108 * LeftTopY = デスクトップの左上Y座標を格納する変数のポインタ 109 * PixelSizeX = OSの拡大率設定の影響を受けないデスクトップの横解像度を格納する変数のポインタ 110 * PixelSizeY = OSの拡大率設定の影響を受けないデスクトップの縦解像度を格納する変数のポインタ 111 * XDpi = X軸のDPI 112 * YDpi = Y軸のDPI 113 */ 114 extern int GetDefaultState(int* SizeX, int* SizeY, int* ColorBitDepth, int* RefreshRate = null, int* LeftTopX = null, int* LeftTopY = null, int* PixelSizeX = null, int* PixelSizeY = null, int* XDpi = null, int* YDpi = null); 115 116 /** 117 * モニターのDPIを取得する 118 */ 119 extern int GetMonitorDpi(int* XDpi, int* YDpi, int MonitorIndex = -1); 120 121 /** 122 * メインウインドウが非アクティブになり、処理が一時停止していたかどうかを取得する 123 * 124 * Params: 125 * ResetFlag = dxlib_d.DxDataType.TRUE:状態をリセット dxlib_d.DxDataType.FALSE:状態をリセットしない 126 * 127 * Returns: 0:一時停止はしていない 1:一時停止していた 128 */ 129 extern int GetNoActiveState(int ResetFlag = dxlib_d.DxDataType.TRUE); 130 131 /** 132 * マウスポインタを表示するかどうかの設定を取得する 133 * 134 * Returns: dxlib_d.DxDataType.TRUE:表示する dxlib_d.DxDataType.FALSE:表示しない 135 */ 136 extern int GetMouseDispFlag(); 137 138 /** 139 * メインウインドウが非アクティブになっても処理を実行し続けるかどうかの設定を取得する 140 * 141 * Returns: dxlib_d.DxDataType.TRUE:実行する dxlib_d.DxDataType.FALSE:停止する 142 */ 143 extern int GetAlwaysRunFlag(); 144 145 /** 146 * DXライブラリとDirectXのバージョンとWindowsのバージョン番号を取得する 147 */ 148 extern int _GetSystemInfo(int* DxLibVer, int* DirectXVer, int* WindowsVer); 149 150 /** 151 * PCの情報を取得する 152 */ 153 extern int GetPcInfo(dxlib_d.DxDataType.TCHAR* OSString, dxlib_d.DxDataType.TCHAR* DirectXString, dxlib_d.DxDataType.TCHAR* CPUString, int* CPUSpeed /* 単位MHz */, double* FreeMemorySize /* 単位MByte */, double* TotalMemorySize, dxlib_d.DxDataType.TCHAR* VideoDriverFileName, dxlib_d.DxDataType.TCHAR* VideoDriverString, double* FreeVideoMemorySize /* 単位MByte */, double* TotalVideoMemorySize); 154 155 /** 156 * MMXが使えるかどうかの情報を得る 157 */ 158 extern int GetUseMMXFlag(); 159 160 /** 161 * SSEが使えるかどうかの情報を得る 162 */ 163 extern int GetUseSSEFlag(); 164 165 /** 166 * SSE2が使えるかどうかの情報を得る 167 */ 168 extern int GetUseSSE2Flag(); 169 170 /** 171 * ウインドウを閉じようとしているかの情報を得る 172 */ 173 extern int GetWindowCloseFlag(); 174 175 /** 176 * ソフトのインスタンスを取得する 177 */ 178 extern dxlib_d.DxDataType.HINSTANCE GetTaskInstance(); 179 180 /** 181 * リージョンを使っているかどうかを取得する 182 */ 183 extern int GetUseWindowRgnFlag(); 184 185 /** 186 * ウインドウのサイズを変更できる設定になっているかどうかを取得する 187 * 188 * Returns: dxlib_d.DxDataType.TRUE:変更できるようになっている dxlib_d.DxDataType.FALSE:変更できないようになっている 189 */ 190 extern int GetWindowSizeChangeEnableFlag(int* FitScreen = null); 191 192 /** 193 * 描画画面のサイズに対するウインドウサイズの比率を取得する 194 * 195 * Returns: ExRateXに代入される値と同じ 196 */ 197 extern double GetWindowSizeExtendRate(double* ExRateX = null, double* ExRateY = null); 198 199 /** 200 * メインウインドウのクライアント領域のサイズを取得する 201 */ 202 extern int GetWindowSize(int* Width, int* Height); 203 204 /** 205 * ウインドウの上下左右の縁の幅を取得する 206 */ 207 extern int GetWindowEdgeWidth(int* LeftWidth, int* RightWidth, int* TopWidth, int* BottomWidth); 208 209 /** 210 * メインウインドウのデスクトップ上の左上端座標を取得する(枠も含める) 211 */ 212 extern int GetWindowPosition(int* x, int* y); 213 214 /** 215 * メインウインドウの閉じるボタンが押されたかどうかを取得する 216 */ 217 extern int GetWindowUserCloseFlag(int StateResetFlag = dxlib_d.DxDataType.FALSE); 218 219 /** 220 * メインウインドウの最大化ボタンが押されたかどうかを取得する、SetWindowMaximizeButtonBehavior(1);が実行されている場合のみ有効な関数 221 * 222 * Params: 223 * StateResetFlag = dxlib_d.DxDataType.TRUE:押された状態をリセットする dxlib_d.DxDataType.FALSE:押された状態をリセットしない 224 */ 225 extern int CheckWindowMaximizeButtonInput(int StateResetFlag = dxlib_d.DxDataType.TRUE); 226 227 /** 228 * DXライブラリの描画機能を使うかどうかの設定を取得する 229 */ 230 extern int GetNotDrawFlag(); 231 232 /** 233 * WM_PAINT メッセージが来たかどうかを取得する 234 * 235 * Returns: dxlib_d.DxDataType.TRUE:WM_PAINTメッセージが来た(一度取得すると以後、再び WM_PAINTメッセージが来るまでdxlib_d.DxDataType.FALSEが返ってくるようになる) dxlib_d.DxDataType.FALSE:WM_PAINT メッセージは来ていない 236 */ 237 extern int GetPaintMessageFlag(); 238 239 /** 240 * パフォーマンスカウンタが有効かどうかを取得する 241 * 242 * Returns: dxlib_d.DxDataType.TRUE:有効 dxlib_d.DxDataType.FALSE:無効 243 */ 244 extern int GetValidHiPerformanceCounter(); 245 246 /** 247 * 入力されたシステム文字を取得する 248 */ 249 extern dxlib_d.DxDataType.TCHAR GetInputSystemChar(int DeleteFlag); 250 251 // 設定系関数 252 253 /** 254 * ウインドウモードを変更する 255 */ 256 extern int ChangeWindowMode(int Flag); 257 258 /** 259 * DXライブラリの文字列処理で前提とする文字列セットを設定する 260 */ 261 extern int SetUseCharSet(int CharSet /* = DX_CHARSET_SHFTJIS等 */); 262 263 /** 264 * アクティブウインドウが他のソフトに移っている際に表示する画像をファイルから読み込む(FileNameにnullを渡すことで解除) 265 */ 266 extern int LoadPauseGraph(const (dxlib_d.DxDataType.TCHAR)* FileName); 267 268 /** 269 * アクティブウインドウが他のソフトに移っている際に表示する画像をファイルから読み込む(FileNameにnullを渡すことで解除) 270 */ 271 extern int LoadPauseGraphWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength); 272 273 /** 274 * アクティブウインドウが他のソフトに移っている際に表示する画像をメモリから読み込む 275 * 276 * Params: 277 * MemImage = ファイルイメージの先頭アドレス,nullにすることで設定解除 278 * MemImageSize = ファイルイメージのサイズ(単位:Byte) 279 */ 280 extern int LoadPauseGraphFromMem(const (void)* MemImage, int MemImageSize); 281 282 /** 283 * メインウインドウのアクティブ状態に変化があったときに呼ばれるコールバック関数を設定する 284 * 285 * Params: 286 * CallBackFunction = 呼ばれるコールバック関数、nullを渡すと設定解除 287 * UserData = CallBackFunctionの第2引数に渡される値 288 */ 289 extern int SetActiveStateChangeCallBackFunction(int function(int ActiveState, void* UserData) CallBackFunction, void* UserData); 290 291 /** 292 * メインウインドウのウインドウテキストを変更する 293 */ 294 extern int SetWindowText(const (dxlib_d.DxDataType.TCHAR)* WindowText); 295 296 /** 297 * メインウインドウのウインドウテキストを変更する 298 */ 299 extern int SetWindowTextWithStrLen(const (dxlib_d.DxDataType.TCHAR)* WindowText, size_t WindowTextLength); 300 301 /** 302 * SetWindowTextの別名関数 303 */ 304 extern int SetMainWindowText(const (dxlib_d.DxDataType.TCHAR)* WindowText); 305 306 /** 307 * SetWindowTextの別名関数 308 */ 309 extern int SetMainWindowTextWithStrLen(const (dxlib_d.DxDataType.TCHAR)* WindowText, size_t WindowTextLength); 310 311 /** 312 * メインウインドウのクラス名を設定する(DxLib_Initの前でのみ使用可能) 313 */ 314 extern int SetMainWindowClassName(const (dxlib_d.DxDataType.TCHAR)* ClassName); 315 316 /** 317 * メインウインドウのクラス名を設定する(DxLib_Initの前でのみ使用可能) 318 */ 319 extern int SetMainWindowClassNameWithStrLen(const (dxlib_d.DxDataType.TCHAR)* ClassName, size_t ClassNameLength); 320 321 /** 322 * メインウインドウで使用するアイコンのIDをセットする 323 */ 324 extern int SetWindowIconID(int ID); 325 326 /** 327 * メインウインドウで使用するアイコンのハンドルをセットする 328 */ 329 extern int SetWindowIconHandle(dxlib_d.DxDataTypeWin.HICON Icon); 330 331 /** 332 * 最大化ボタンやALT+ENTERキーによる非同期なウインドウモードの変更の機能の設定を行う 333 * 334 * Params: 335 * Flag = 非同期ウインドウモード変更を有効にするかどうかのフラグ(dxlib_d.DxDataType.TRUE:有効にする dxlib_d.DxDataType.FALSE:無効にする(デフォルト)) 336 * CallBackFunction = 非同期ウインドウモード変更が行われた場合に呼ばれるコールバック関数のアドレス 337 * Data = CallBackFunctionの引数に渡されるvoid型のポインタ 338 */ 339 extern int SetUseASyncChangeWindowModeFunction(int Flag, void function(void*) CallBackFunction, void* Data); 340 341 /** 342 * シャットダウンによるソフトの強制終了の際に呼ばれるコールバック関数を登録する(Messageはコールバック関数の終了を待つ間表示されるメッセージ) 343 */ 344 extern int SetShutdownCallbackFunction(void function(void*) *CallbackFunction, void* Data, const (dxlib_d.DxDataType.TCHAR)* Message); 345 346 /** 347 * メインウインドウのスタイルを変更する 348 */ 349 extern int SetWindowStyleMode(int Mode); 350 351 /** 352 * メインウインドウの奥行き位置を変更する 353 */ 354 extern int SetWindowZOrder(int ZType /* = DX_WIN_ZTYPE_TOP等 */, int WindowActivateFlag = dxlib_d.DxDataType.TRUE); 355 356 /** 357 * メインウインドウの端を掴んでウインドウのサイズを変更できるようにするかどうかの設定を行う 358 * 359 * Params: 360 * Flag = 変更を可能にするかどうか(dxlib_d.DxDataType.TRUE:可能にする dxlib_d.DxDataType.FALSE:不可能にする(デフォルト)) 361 * FitScreen = ウインドウのクライアント領域に画面をフィットさせる(拡大させる)かどうか dxlib_d.DxDataType.TRUE:フィットさせる dxlib_d.DxDataType.FALSE:フィットさせない 362 */ 363 extern int SetWindowSizeChangeEnableFlag(int Flag, int FitScreen = dxlib_d.DxDataType.TRUE); 364 365 /** 366 * 描画画面のサイズに対するメインウインドウサイズの比率を設定する(ExRateYがマイナスの場合はExRateXの値がExRateYにも使用されます) 367 */ 368 extern int SetWindowSizeExtendRate(double ExRateX, double ExRateY = -1.0); 369 370 /** 371 * メインウインドウのクライアント領域のサイズを設定する 372 */ 373 extern int SetWindowSize(int Width, int Height); 374 375 /** 376 * メインウインドウのクライアント領域の最大サイズを設定する(SetWindowSizeChangeEnableFlagの第一引数をdxlib_d.DxDataType.TRUEで呼び出して、ウインドウのサイズが変更できる状態でのみ使用されるパラメータです) 377 */ 378 extern int SetWindowMaxSize(int MaxWidth, int MaxHeight); 379 380 /** 381 * メインウインドウのクライアント領域の最小サイズを設定する(SetWindowSizeChangeEnableFlagの第一引数をdxlib_d.DxDataType.TRUEで呼び出して、ウインドウのサイズが変更できる状態でのみ使用されるパラメータです) 382 */ 383 extern int SetWindowMinSize(int MinWidth, int MinHeight); 384 385 /** 386 * メインウインドウの位置を設定する(枠も含めた左上座標) 387 */ 388 extern int SetWindowPosition(int x, int y); 389 390 /** 391 * タスクスイッチを有効にするかどうかを設定する 392 */ 393 extern int SetSysCommandOffFlag(int Flag, const (dxlib_d.DxDataType.TCHAR)* HookDllPath = null); 394 395 /** 396 * タスクスイッチを有効にするかどうかを設定する 397 */ 398 extern int SetSysCommandOffFlagWithStrLen(int Flag, const (dxlib_d.DxDataType.TCHAR)* HookDllPath = null, size_t HookDllPathLength = 0); 399 400 /** 401 * メインウインドウの最大化ボタンが押されたときの挙動を設定する(BehaviorType 0:標準動作 1:標準動作は行わず、最大化ボタンが押されたかどうかはCheckWindowMaximizeButtonInputで判定する) 402 */ 403 extern int SetWindowMaximizeButtonBehavior(int BehaviorType); 404 405 /** 406 * メインウインドウへのメッセージをフックするウインドウプロージャを登録する 407 */ 408 extern int SetHookWinProc(dxlib_d.DxDataTypeWin.WNDPROC WinProc); 409 410 /** 411 * SetHookWinProcで設定したウインドウプロージャの戻り値を使用するかどうかを設定する、SetHookWinProcで設定したウインドウプロージャの中でのみ使用可能 412 * 413 * Params: 414 * UseFlag = dxlib_d.DxDataType.TRUE:戻り値を使用して、DXライブラリのウインドウプロージャの処理は行わない dxlib_d.DxDataType.FALSE:戻り値は使用せず、ウインドウプロージャから出た後、DXライブラリのウインドウプロージャの処理を行う 415 */ 416 extern int SetUseHookWinProcReturnValue(int UseFlag); 417 418 /** 419 * DXライブラリを使用したソフトの二重起動を可能にするかどうかの設定を行う 420 * 421 * Params: 422 * Flag = dxlib_d.DxDataType.TRUE:可能にする dxlib_d.DxDataType.FALSE:不可能にする(デフォルト) 423 */ 424 extern int SetDoubleStartValidFlag(int Flag); 425 426 /** 427 * DXライブラリを使用したソフトが既に起動しているかどうかを取得する 428 * 429 * Returns: dxlib_d.DxDataType.TRUE:既に起動している dxlib_d.DxDataType.FALSE:起動していない 430 */ 431 extern int CheckDoubleStart(); 432 433 /** 434 * メッセージ処理をDXライブラリに肩代わりしてもらうウインドウを追加する 435 */ 436 extern int AddMessageTakeOverWindow(dxlib_d.DxDataTypeWin.HWND Window); 437 438 /** 439 * メッセージ処理をDXライブラリに肩代わりしてもらうウインドウを減らす 440 */ 441 extern int SubMessageTakeOverWindow(dxlib_d.DxDataTypeWin.HWND Window); 442 443 /** 444 * メインウインドウの初期位置を設定する 445 */ 446 extern int SetWindowInitPosition(int x, int y); 447 448 /** 449 * DXライブラリのウインドウ関連の機能を使用しないかどうかを設定する 450 * 451 * Params: 452 * Flag = dxlib_d.DxDataType.TRUE:使用しない dxlib_d.DxDataType.FALSE:使用する(デフォルト) 453 */ 454 extern int SetNotWinFlag(int Flag); 455 456 /** 457 * DXライブラリの描画機能を使うかどうかを設定する 458 * 459 * Params: 460 * Flag = dxlib_d.DxDataType.TRUE:使用しない dxlib_d.DxDataType.FALSE:使用する(デフォルト) 461 */ 462 extern int SetNotDrawFlag(int Flag); 463 464 /** 465 * DXライブラリのサウンド機能を使うかどうかを設定する 466 * 467 * Params: 468 * Flag = dxlib_d.DxDataType.TRUE:使用しない dxlib_d.DxDataType.FALSE:使用する(デフォルト) 469 */ 470 extern int SetNotSoundFlag(int Flag); 471 472 /** 473 * DXライブラリの入力状態の取得機能を使うかどうかを設定する 474 * 475 * Params: 476 * Flag = dxlib_d.DxDataType.TRUE:使用しない dxlib_d.DxDataType.FALSE:使用する(デフォルト) 477 */ 478 extern int SetNotInputFlag(int Flag); 479 480 /** 481 * DXライブラリでメッセージ処理を行うダイアログボックスを登録する 482 */ 483 extern int SetDialogBoxHandle(dxlib_d.DxDataTypeWin.HWND WindowHandle); 484 485 /** 486 * メインウインドウを表示するかどうかを設定する 487 * 488 * Params: 489 * Flag = dxlib_d.DxDataType.TRUE:表示する dxlib_d.DxDataType.FALSE:表示しない 490 */ 491 extern int SetWindowVisibleFlag(int Flag); 492 493 /** 494 * メインウインドウを最小化するかどうかを設定する 495 * 496 * Params: 497 * Flag = dxlib_d.DxDataType.TRUE:最小化する dxlib_d.DxDataType.FALSE:最小化を解除 498 */ 499 extern int SetWindowMinimizeFlag(int Flag); 500 501 /** 502 * メインウインドウの×ボタンを押した時にDXライブラリが自動的にウインドウを閉じるかどうかを設定する 503 * 504 * Params: 505 * Flag = dxlib_d.DxDataType.TRUE:自動的に閉じる(デフォルト) dxlib_d.DxDataType.FALSE:閉じない 506 */ 507 extern int SetWindowUserCloseEnableFlag(int Flag); 508 509 /** 510 * DXライブラリ終了時にPostQuitMessageを呼ぶかどうかを設定する 511 * 512 * Params: 513 * Flag = dxlib_d.DxDataType.TRUE:PostQuitMessageを呼ぶ(デフォルト) dxlib_d.DxDataType.FALSE:呼ばない 514 */ 515 extern int SetDxLibEndPostQuitMessageFlag(int Flag); 516 517 /** 518 * DXライブラリで使用するウインドウのハンドルをセットする(DxLib_Initを実行する以前でのみ有効) 519 */ 520 extern int SetUserWindow(dxlib_d.DxDataTypeWin.HWND WindowHandle); 521 522 /** 523 * DXライブラリで使用する表示用の子ウインドウのハンドルをセットする(DxLib_Initを実行する以前でのみ有効) 524 */ 525 extern int SetUserChildWindow(dxlib_d.DxDataTypeWin.HWND WindowHandle); 526 527 /** 528 * SetUseWindowで設定したウインドウのメッセージループ処理をDXライブラリで行うかどうかを設定する 529 * 530 * Params: 531 * Flag = dxlib_d.DxDataType.TRUE:DXライブラリで行う(デフォルト) dxlib_d.DxDataType.FALSE:DXライブラリでは行わない 532 */ 533 extern int SetUserWindowMessageProcessDXLibFlag(int Flag); 534 535 /** 536 * FPUの精度を落とさない設定を使用するかどうかを設定する、DxLib_Initを呼び出す前のみ有効 537 * 538 * Params: 539 * Flag = dxlib_d.DxDataType.TRUE:使用する(精度が落ちない) dxlib_d.DxDataType.FALSE:使用しない(精度を落とす(デフォルト) 540 */ 541 extern int SetUseFPUPreserveFlag(int Flag); 542 543 /** 544 * マウスポインタがウインドウのクライアントエリアの外にいけるかどうかを設定する 545 * 546 * Params: 547 * Flag = dxlib_d.DxDataType.TRUE:いける(デフォルト設定) dxlib_d.DxDataType.FALSE:いけない 548 */ 549 extern int SetValidMousePointerWindowOutClientAreaMoveFlag(int Flag); 550 551 /** 552 * バックバッファの透過色の部分を透過させるかどうかを設定する 553 * 554 * Params: 555 * Flag = dxlib_d.DxDataType.TRUE:透過させる dxlib_d.DxDataType.FALSE:透過させない(デフォルト) 556 */ 557 extern int SetUseBackBufferTransColorFlag(int Flag); 558 559 /** 560 * UpdateLayerdWindowForBaseImageやUpdateLayerdWindowForSoftImageを使用するかどうかを設定する 561 * 562 * Params: 563 * Flag = dxlib_d.DxDataType.TRUE:使用する dxlib_d.DxDataType.FALSE:使用しない 564 */ 565 extern int SetUseUpdateLayerdWindowFlag(int Flag); 566 567 /** 568 * リソースを読み込む際に使用するモジュールを設定する(nullを指定すると初期状態に戻ります、デフォルトではnull) 569 * 570 * Params: 571 * ResourceModule = ? 572 */ 573 extern int SetResourceModule(dxlib_d.DxDataTypeWin.HMODULE ResourceModule); 574 575 /** 576 * WM_PAINT メッセージが来た際に『DXライブラリのWM_PAINTメッセージが来た際の処理』を行うかどうかを設定する(別スレッドで描画処理を行う場合などで使用) 577 */ 578 extern int SetUseDxLibWM_PAINTProcess(int Flag); 579 580 /** 581 * Windows10でWM_CHARで短時間に連続して同じ文字が入力された場合の無効扱いにする時間を設定する(MilliSecondのミリ秒以内に連続して同じ文字が入力された場合に無効にする、MilliSecondの値をマイナスにするとデフォルトの設定に戻る) 582 */ 583 extern int SetWindows10_WM_CHAR_CancelTime(int MilliSecond); 584 585 // ドラッグ&ドロップされたファイル関係 586 587 /** 588 * ファイルのメインウインドウへのドラッグ&ドロップ機能を有効にするかどうかのフラグをセットする 589 */ 590 extern int SetDragFileValidFlag(int Flag); 591 592 /** 593 * メインウインドウへドラッグ&ドロップされたファイルの情報をリセットする 594 */ 595 extern int DragFileInfoClear(); 596 597 /** 598 * メインウインドウへドラッグ&ドロップされたファイル名を取得する 599 * 600 * Params: 601 * FilePathBuffer = ファイル名を格納するバッファの先頭アドレス 602 * 603 * Returns: -1:取得できなかった 0:取得できた 604 */ 605 extern int GetDragFilePath(dxlib_d.DxDataType.TCHAR* FilePathBuffer); 606 607 /** 608 * メインウインドウへドラッグ&ドロップされたファイルの数を取得する 609 */ 610 extern int GetDragFileNum(); 611 612 // ウインドウ描画領域設定系関数 613 614 /** 615 * 任意の画像イメージからRGNハンドルを作成する 616 * 617 * Params: 618 * Width = 横ドット数 619 * Height = 縦ドット数 620 * MaskData = ドット情報配列の先頭アドレス 621 * Pitch = 1ラインあたりのbyteサイズ 622 * Byte = 1ドット辺りのbyteサイズ(対応しているのは1~4)、ドットの数値が0かそれ以外かで判別 623 */ 624 extern dxlib_d.DxDataTypeWin.HRGN CreateRgnFromGraph(int Width, int Height, const (void)* MaskData, int Pitch, int Byte); 625 626 /** 627 * 任意の基本イメージデータと透過色からRGNハンドルを作成する 628 * 629 * Params: 630 * BaseImage = 基本イメージデータのアドレス 631 * TransColorR = 透過色(0~255) 632 * TransColorG = 透過色(0~255) 633 * TransColorB = 透過色(0~255) 634 */ 635 extern dxlib_d.DxDataTypeWin.HRGN CreateRgnFromBaseImage(dxlib_d.DxLib.BASEIMAGE* BaseImage, int TransColorR, int TransColorG, int TransColorB); 636 637 /** 638 * 任意の画像ファイルからRGNをセットする 639 */ 640 extern int SetWindowRgnGraph(const (dxlib_d.DxDataType.TCHAR)* FileName); 641 642 /** 643 * 任意の画像ファイルからRGNをセットする 644 */ 645 extern int SetWindowRgnGraphWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength); 646 647 /** 648 * 描画先の画面の透過色の部分を透過させるRGNをセットする(使用される透過色は関数SetTransColorで設定した色) 649 */ 650 extern int UpdateTransColorWindowRgn(); 651 652 // ツールバー関係 653 654 /** 655 * ツールバーの準備、BitmapNameにnull, ResourceIDに-1を渡すとツールバーを解除 656 * 657 * Params: 658 * BitmapName = ツールバーのボタンに使用する画像ファイルパス、ResourceIDに-1以外を渡す場合はnullにする 659 * DivNum = ボタン画像中のボタンの数 660 * ResourceID = ツールバーのボタンに使用するビットマップリソースのID、BitmapNameにnullを渡すとこの引数が使用される 661 */ 662 extern int SetupToolBar(const (dxlib_d.DxDataType.TCHAR)* BitmapName, int DivNum, int ResourceID = -1); 663 664 /** 665 * ツールバーの準備、BitmapNameにnull, ResourceIDに-1を渡すとツールバーを解除 666 * 667 * Params: 668 * BitmapName = ツールバーのボタンに使用する画像ファイルパス、ResourceIDに-1以外を渡す場合はnullにする 669 * BitmapNameLength = ? 670 * DivNum = ボタン画像中のボタンの数 671 * ResourceID = ツールバーのボタンに使用するビットマップリソースのID、BitmapNameにnullを渡すとこの引数が使用される 672 */ 673 extern int SetupToolBarWithStrLen(const (dxlib_d.DxDataType.TCHAR)* BitmapName, size_t BitmapNameLength, int DivNum, int ResourceID = -1); 674 675 /** 676 * ツールバーにボタンを追加する 677 * 678 * Params: 679 * Type = ボタンタイプ(TOOLBUTTON_TYPE_NORMAL等(解説は#defineの定義を参照してください)) 680 * State = 初期状態(TOOLBUTTON_STATE_ENABLE等(解説は#defineの定義を参照してください)) 681 * ImageIndex = 使用するボタンの画像番号 682 * ID = ボタンに割り当てる識別番号 683 */ 684 extern int AddToolBarButton(int Type /* TOOLBUTTON_TYPE_NORMAL等 */, int State /* TOOLBUTTON_STATE_ENABLE等 */, int ImageIndex, int ID); 685 686 /** 687 * ツールバーに隙間を追加する 688 */ 689 extern int AddToolBarSep(); 690 691 /** 692 * ツールバーのボタンの状態を取得する 693 * 694 * Params: 695 * ID = AddToolBarButtonで設定したボタンの識別番号 696 * 697 * Returns: dxlib_d.DxDataType.TRUE:押されているor押された dxlib_d.DxDataType.FALSE:押されていない 698 */ 699 extern int GetToolBarButtonState(int ID); 700 701 /** 702 * ツールバーのボタンの状態を設定する 703 * 704 * Params: 705 * ID = AddToolBarButtonで設定したボタンの識別番号 706 * State = 設定する状態(TOOLBUTTON_STATE_ENABLE等(解説は#defineの定義を参照してください)) 707 */ 708 extern int SetToolBarButtonState(int ID, int State /* TOOLBUTTON_STATE_ENABLE等 */); 709 710 /** 711 * ツールバーのボタンを全て削除する 712 */ 713 extern int DeleteAllToolBarButton(); 714 715 // メニュー関係 716 717 /** 718 * メニューを有効にするかどうかを設定する 719 * 720 * Params: 721 * Flag = dxlib_d.DxDataType.TRUE:使用する dxlib_d.DxDataType.FALSE:使用しない 722 */ 723 extern int SetUseMenuFlag(int Flag); 724 725 /** 726 * キーボードアクセラレーターを使用するかどうかを設定する 727 * 728 * Params: 729 * Flag = dxlib_d.DxDataType.TRUE:使用する dxlib_d.DxDataType.FALSE:使用しない 730 */ 731 extern int SetUseKeyAccelFlag(int Flag); 732 733 /** 734 * ショートカットキーを追加する 735 * 736 * Params: 737 * ItemName = ショートカットキーを割り当てるメニューのアイテム名(AddMenuItemでNewItemNameに渡した名前)、ItemIDを使用する場合はnullを渡す 738 * ItemID = メニュー項目の識別番号(AddMenuItemの引数 NewItemIDで指定したもの)、ItemNameを使用する場合は-1を渡す 739 * KeyCode = ショートカットキーのキー(KEY_INPUT_L等) 740 * CtrlFlag = 同時にCTRLキーを押す必要があるようにするかどうか(dxlib_d.DxDataType.TRUE:押す必要がある dxlib_d.DxDataType.FALSE:押さなくても良い) 741 * AltFlag = 同時にALTキーを押す必要があるようにするかどうか(dxlib_d.DxDataType.TRUE:押す必要がある dxlib_d.DxDataType.FALSE:押さなくても良い) 742 * ShiftFlag = 同時にSHIFTキーを押す必要があるようにするかどうか(dxlib_d.DxDataType.TRUE:押す必要がある dxlib_d.DxDataType.FALSE:押さなくても良い) 743 */ 744 extern int AddKeyAccel(const (dxlib_d.DxDataType.TCHAR)* ItemName, int ItemID, int KeyCode, int CtrlFlag, int AltFlag, int ShiftFlag); 745 746 /** 747 * ショートカットキーを追加する 748 * 749 * Params: 750 * ItemName = ショートカットキーを割り当てるメニューのアイテム名(AddMenuItemでNewItemNameに渡した名前)、ItemIDを使用する場合はnullを渡す 751 * ItemNameLength = ? 752 * ItemID = メニュー項目の識別番号(AddMenuItemの引数 NewItemIDで指定したもの)、ItemNameを使用する場合は-1を渡す 753 * KeyCode = ショートカットキーのキー(KEY_INPUT_L等) 754 * CtrlFlag = 同時にCTRLキーを押す必要があるようにするかどうか(dxlib_d.DxDataType.TRUE:押す必要がある dxlib_d.DxDataType.FALSE:押さなくても良い) 755 * AltFlag = 同時にALTキーを押す必要があるようにするかどうか(dxlib_d.DxDataType.TRUE:押す必要がある dxlib_d.DxDataType.FALSE:押さなくても良い) 756 * ShiftFlag = 同時にSHIFTキーを押す必要があるようにするかどうか(dxlib_d.DxDataType.TRUE:押す必要がある dxlib_d.DxDataType.FALSE:押さなくても良い) 757 */ 758 extern int AddKeyAccelWithStrLen(const (dxlib_d.DxDataType.TCHAR)* ItemName, size_t ItemNameLength, int ItemID, int KeyCode, int CtrlFlag, int AltFlag, int ShiftFlag); 759 760 /** 761 * ショートカットキーを追加する(各引数の解説はAddKeyAccelと同じ、ItemIDが無くなっただけ) 762 */ 763 extern int AddKeyAccel_Name(const (dxlib_d.DxDataType.TCHAR)* ItemName, int KeyCode, int CtrlFlag, int AltFlag, int ShiftFlag); 764 765 /** 766 * ショートカットキーを追加する(各引数の解説はAddKeyAccelと同じ、ItemIDが無くなっただけ) 767 */ 768 extern int AddKeyAccel_NameWithStrLen(const (dxlib_d.DxDataType.TCHAR)* ItemName, size_t ItemNameLength, int KeyCode, int CtrlFlag, int AltFlag, int ShiftFlag); 769 770 /** 771 * ショートカットキーを追加する(各引数の解説はAddKeyAccelと同じ、ItemNameが無くなっただけ) 772 */ 773 extern int AddKeyAccel_ID(int ItemID, int KeyCode, int CtrlFlag, int AltFlag, int ShiftFlag); 774 775 /** 776 * ショートカットキーの情報をリセットする 777 */ 778 extern int ClearKeyAccel(); 779 780 /** 781 * メニューに項目を追加する 782 * 783 * Params: 784 * AddType = 項目タイプ(MENUITEM_ADD_CHILD等(解説は#defineの定義を参照してください)) 785 * ItemName = AddTypeがMENUITEM_ADD_CHILDの場合は親となる項目の名前、MENUITEM_ADD_INSERTの場合は挿入位置となる項目の名前、nullを指定するとItemIDが使用される 786 * ItemID = ItemNameの代わりに識別番号で指定するもの、AddType毎の違いはItemNameの解説の通り、-1を指定するとItemNameが使用される 787 * SeparatorFlag = 区切り線を追加するかどうか(dxlib_d.DxDataType.TRUE:区切り線を追加、この場合NewItemNameとNewItemIDは無視される dxlib_d.DxDataType.FALSE:追加するのは区切り線ではない) 788 * NewItemName = 新しい項目の名前 789 * NewItemID = 新しい項目の識別番号、-1を指定すると内部で適当な番号が割り当てられる 790 */ 791 extern int AddMenuItem(int AddType /* MENUITEM_ADD_CHILD等 */, const (dxlib_d.DxDataType.TCHAR)* ItemName, int ItemID, int SeparatorFlag, const (dxlib_d.DxDataType.TCHAR)* NewItemName = null, int NewItemID = -1); 792 793 /** 794 * メニューに項目を追加する 795 * 796 * Params: 797 * AddType = 項目タイプ(MENUITEM_ADD_CHILD等(解説は#defineの定義を参照してください)) 798 * ItemName = AddTypeがMENUITEM_ADD_CHILDの場合は親となる項目の名前、MENUITEM_ADD_INSERTの場合は挿入位置となる項目の名前、nullを指定するとItemIDが使用される 799 * ItemNameLength = ? 800 * ItemID = ItemNameの代わりに識別番号で指定するもの、AddType毎の違いはItemNameの解説の通り、-1を指定するとItemNameが使用される 801 * SeparatorFlag = 区切り線を追加するかどうか(dxlib_d.DxDataType.TRUE:区切り線を追加、この場合NewItemNameとNewItemIDは無視される dxlib_d.DxDataType.FALSE:追加するのは区切り線ではない) 802 * NewItemName = 新しい項目の名前 803 * NewItemNameLength = ? 804 * NewItemID = 新しい項目の識別番号、-1を指定すると内部で適当な番号が割り当てられる 805 */ 806 extern int AddMenuItemWithStrLen(int AddType /* MENUITEM_ADD_CHILD等 */, const (dxlib_d.DxDataType.TCHAR)* ItemName, size_t ItemNameLength, int ItemID, int SeparatorFlag, const (dxlib_d.DxDataType.TCHAR)* NewItemName = null, size_t NewItemNameLength = 0, int NewItemID = -1); 807 808 /** 809 * メニューから選択項目を削除する 810 * 811 * Params: 812 * ItemName = 削除する項目の名前(AddMenuItemでNewItemNameに渡した名前)、nullを指定するとItemIDが使用される 813 * ItemID = 削除する項目の識別番号(AddMenuItemでNewItemIDに渡した番号)、-1を指定するとItemNameが使用される 814 */ 815 extern int DeleteMenuItem(const (dxlib_d.DxDataType.TCHAR)* ItemName, int ItemID); 816 817 /** 818 * メニューから選択項目を削除する 819 * 820 * Params: 821 * ItemName = 削除する項目の名前(AddMenuItemでNewItemNameに渡した名前)、nullを指定するとItemIDが使用される 822 * ItemNameLength = ? 823 * ItemID = 削除する項目の識別番号(AddMenuItemでNewItemIDに渡した番号)、-1を指定するとItemNameが使用される 824 */ 825 extern int DeleteMenuItemWithStrLen(const (dxlib_d.DxDataType.TCHAR)* ItemName, size_t ItemNameLength, int ItemID); 826 827 /** 828 * メニューが選択されたかどうかを取得する(ItemNameとItemIDについては関数DeleteMenuItemの注釈を参照してください) 829 * 830 * Returns: 0:選択されていない 1:選択された 831 */ 832 extern int CheckMenuItemSelect(const (dxlib_d.DxDataType.TCHAR)* ItemName, int ItemID); 833 834 /** 835 * メニューが選択されたかどうかを取得する(ItemNameとItemIDについては関数DeleteMenuItemの注釈を参照してください) 836 * 837 * Returns: 0:選択されていない 1:選択された 838 */ 839 extern int CheckMenuItemSelectWithStrLen(const (dxlib_d.DxDataType.TCHAR)* ItemName, size_t ItemNameLength, int ItemID); 840 841 /** 842 * メニューの項目を選択出来るかどうかを設定する(ItemNameとItemIDについては関数DeleteMenuItemの注釈を参照してください) 843 * 844 * Params: 845 * ItemName = ? 846 * ItemID = ? 847 * EnableFlag = 項目が選択できるかどうか(dxlib_d.DxDataType.TRUE:選択できる dxlib_d.DxDataType.FALSE:選択できない) 848 */ 849 extern int SetMenuItemEnable(const (dxlib_d.DxDataType.TCHAR)* ItemName, int ItemID, int EnableFlag); 850 851 /** 852 * メニューの項目を選択出来るかどうかを設定する(ItemNameとItemIDについては関数DeleteMenuItemの注釈を参照してください) 853 * 854 * Params: 855 * ItemName = ? 856 * ItemNameLength = ? 857 * ItemID = ? 858 * EnableFlag = 項目が選択できるかどうか(dxlib_d.DxDataType.TRUE:選択できる dxlib_d.DxDataType.FALSE:選択できない) 859 */ 860 extern int SetMenuItemEnableWithStrLen(const (dxlib_d.DxDataType.TCHAR)* ItemName, size_t ItemNameLength, int ItemID, int EnableFlag); 861 862 /** 863 * メニューの項目にチェックマークやラジオボタンを表示するかどうかを設定する(ItemNameとItemIDについては関数DeleteMenuItemの注釈を参照してください)) 864 * 865 * Params: 866 * ItemName = ? 867 * ItemID = ? 868 * Mark = 設定するマーク(MENUITEM_MARK_NONE等(解説は#defineの定義を参照してください) 869 */ 870 extern int SetMenuItemMark(const (dxlib_d.DxDataType.TCHAR)* ItemName, int ItemID, int Mark); 871 872 /** 873 * メニューの項目にチェックマークやラジオボタンを表示するかどうかを設定する(ItemNameとItemIDについては関数DeleteMenuItemの注釈を参照してください)) 874 * 875 * Params: 876 * ItemName = ? 877 * ItemNameLength = ? 878 * ItemID = ? 879 * Mark = 設定するマーク(MENUITEM_MARK_NONE等(解説は#defineの定義を参照してください) 880 */ 881 extern int SetMenuItemMarkWithStrLen(const (dxlib_d.DxDataType.TCHAR)* ItemName, size_t ItemNameLength, int ItemID, int Mark); 882 883 /** 884 * メニューの項目がどれか選択されたかどうかを取得する 885 * 886 * Returns: dxlib_d.DxDataType.TRUE:どれか選択された dxlib_d.DxDataType.FALSE:選択されていない 887 */ 888 extern int CheckMenuItemSelectAll(); 889 890 /** 891 * メニューに選択項目を追加する 892 * 893 * Params: 894 * ParentItemName = 親となる項目の名前、親が持つリストの末端に新しい項目を追加します 895 * NewItemName = 新しい項目の名前 896 */ 897 extern int AddMenuItem_Name(const (dxlib_d.DxDataType.TCHAR)* ParentItemName, const (dxlib_d.DxDataType.TCHAR)* NewItemName); 898 899 /** 900 * メニューに選択項目を追加する 901 * 902 * Params: 903 * ParentItemName = 親となる項目の名前、親が持つリストの末端に新しい項目を追加します 904 * ParentItemNameLength = ? 905 * NewItemName = 新しい項目の名前 906 * NewItemNameLength = ? 907 */ 908 extern int AddMenuItem_NameWithStrLen(const (dxlib_d.DxDataType.TCHAR)* ParentItemName, size_t ParentItemNameLength, const (dxlib_d.DxDataType.TCHAR)* NewItemName, size_t NewItemNameLength); 909 910 /** 911 * メニューのリストに区切り線を追加する 912 * 913 * Params: 914 * ParentItemName = 区切り線を付ける項目リストの親の名前、リストの末端に区切り線を追加します 915 */ 916 extern int AddMenuLine_Name(const (dxlib_d.DxDataType.TCHAR)* ParentItemName); 917 918 /** 919 * メニューのリストに区切り線を追加する 920 * 921 * Params: 922 * ParentItemName = 区切り線を付ける項目リストの親の名前、リストの末端に区切り線を追加します 923 * ParentItemNameLength = ? 924 */ 925 extern int AddMenuLine_NameWithStrLen(const (dxlib_d.DxDataType.TCHAR)* ParentItemName, size_t ParentItemNameLength); 926 927 /** 928 * 指定の項目と、指定の項目の一つ上の項目との間に新しい項目を追加する 929 */ 930 extern int InsertMenuItem_Name(const (dxlib_d.DxDataType.TCHAR)* ItemName, const (dxlib_d.DxDataType.TCHAR)* NewItemName); 931 932 /** 933 * 指定の項目と、指定の項目の一つ上の項目との間に新しい項目を追加する 934 */ 935 extern int InsertMenuItem_NameWithStrLen(const (dxlib_d.DxDataType.TCHAR)* ItemName, size_t ItemNameLength, const (dxlib_d.DxDataType.TCHAR)* NewItemName, size_t NewItemNameLength); 936 937 /** 938 * 指定の項目と、指定の項目の一つ上の項目との間に区切り線を追加する 939 */ 940 extern int InsertMenuLine_Name(const (dxlib_d.DxDataType.TCHAR)* ItemName); 941 942 /** 943 * 指定の項目と、指定の項目の一つ上の項目との間に区切り線を追加する 944 */ 945 extern int InsertMenuLine_NameWithStrLen(const (dxlib_d.DxDataType.TCHAR)* ItemName, size_t ItemNameLength); 946 947 /** 948 * メニューから選択項目を削除する 949 */ 950 extern int DeleteMenuItem_Name(const (dxlib_d.DxDataType.TCHAR)* ItemName); 951 952 /** 953 * メニューから選択項目を削除する 954 */ 955 extern int DeleteMenuItem_NameWithStrLen(const (dxlib_d.DxDataType.TCHAR)* ItemName, size_t ItemNameLength); 956 957 /** 958 * メニューが選択されたかどうかを取得する 959 * 960 * Returns: 0:選択されていない 1:選択された 961 */ 962 extern int CheckMenuItemSelect_Name(const (dxlib_d.DxDataType.TCHAR)* ItemName); 963 964 /** 965 * メニューが選択されたかどうかを取得する 966 * 967 * Returns: 0:選択されていない 1:選択された 968 */ 969 extern int CheckMenuItemSelect_NameWithStrLen(const (dxlib_d.DxDataType.TCHAR)* ItemName, size_t ItemNameLength); 970 971 /** 972 * メニューの項目を選択出来るかどうかを設定する 973 * 974 * Params: 975 * ItemName = ? 976 * EnableFlag = 1:選択できる 0:選択できない 977 */ 978 extern int SetMenuItemEnable_Name(const (dxlib_d.DxDataType.TCHAR)* ItemName, int EnableFlag); 979 980 /** 981 * メニューの項目を選択出来るかどうかを設定する 982 * 983 * Params: 984 * ItemName = ? 985 * ItemNameLength = ? 986 * EnableFlag = 1:選択できる 0:選択できない 987 */ 988 extern int SetMenuItemEnable_NameWithStrLen(const (dxlib_d.DxDataType.TCHAR)* ItemName, size_t ItemNameLength, int EnableFlag); 989 990 /** 991 * メニューの項目にチェックマークやラジオボタンを表示するかどうかを設定する 992 * 993 * Params: 994 * ItemName = ? 995 * Mark = 設定するマーク(MENUITEM_MARK_NONE等) 996 */ 997 extern int SetMenuItemMark_Name(const (dxlib_d.DxDataType.TCHAR)* ItemName, int Mark); 998 999 /** 1000 * メニューの項目にチェックマークやラジオボタンを表示するかどうかを設定する 1001 * 1002 * Params: 1003 * ItemName = ? 1004 * ItemNameLength = ? 1005 * Mark = 設定するマーク(MENUITEM_MARK_NONE等) 1006 */ 1007 extern int SetMenuItemMark_NameWithStrLen(const (dxlib_d.DxDataType.TCHAR)* ItemName, size_t ItemNameLength, int Mark); 1008 1009 /** 1010 * メニューに選択項目を追加する 1011 */ 1012 extern int AddMenuItem_ID(int ParentItemID, const (dxlib_d.DxDataType.TCHAR)* NewItemName, int NewItemID = -1); 1013 1014 /** 1015 * メニューに選択項目を追加する 1016 */ 1017 extern int AddMenuItem_IDWithStrLen(int ParentItemID, const (dxlib_d.DxDataType.TCHAR)* NewItemName, size_t NewItemNameLength, int NewItemID = -1); 1018 1019 /** 1020 * メニューのリストに区切り線を追加する 1021 */ 1022 extern int AddMenuLine_ID(int ParentItemID); 1023 1024 /** 1025 * 指定の項目と、指定の項目の一つ上の項目との間に新しい項目を追加する 1026 */ 1027 extern int InsertMenuItem_ID(int ItemID, int NewItemID); 1028 1029 /** 1030 * 指定の項目と、指定の項目の一つ上の項目との間に区切り線を追加する 1031 */ 1032 extern int InsertMenuLine_ID(int ItemID, int NewItemID); 1033 1034 /** 1035 * メニューから選択項目を削除する 1036 */ 1037 extern int DeleteMenuItem_ID(int ItemID); 1038 1039 /** 1040 * メニューが選択されたかどうかを取得する 1041 * 1042 * Returns: 0:選択されていない 1:選択された 1043 */ 1044 extern int CheckMenuItemSelect_ID(int ItemID); 1045 1046 /** 1047 * メニューの項目を選択出来るかどうかを設定する 1048 * 1049 * Params: 1050 * ItemID = ? 1051 * EnableFlag = 1:選択できる 0:選択できない 1052 */ 1053 extern int SetMenuItemEnable_ID(int ItemID, int EnableFlag); 1054 1055 /** 1056 * メニューの項目にチェックマークやラジオボタンを表示するかどうかを設定する(Mark:設定するマーク(MENUITEM_MARK_NONE等)) 1057 * 1058 * Params: 1059 * ItemID = ? 1060 * Mark = ? 1061 */ 1062 extern int SetMenuItemMark_ID(int ItemID, int Mark); 1063 1064 /** 1065 * メニューの全ての選択項目を削除する 1066 */ 1067 extern int DeleteMenuItemAll(); 1068 1069 /** 1070 * メニューが選択されたかどうかの情報をリセット 1071 */ 1072 extern int ClearMenuItemSelect(); 1073 1074 /** 1075 * メニューの項目名から項目識別番号を取得する 1076 */ 1077 extern int GetMenuItemID(const (dxlib_d.DxDataType.TCHAR)* ItemName); 1078 1079 /** 1080 * メニューの項目名から項目識別番号を取得する 1081 */ 1082 extern int GetMenuItemIDWithStrLen(const (dxlib_d.DxDataType.TCHAR)* ItemName, size_t ItemNameLength); 1083 1084 /** 1085 * メニューの項目識別番号から項目名を取得する 1086 */ 1087 extern int GetMenuItemName(int ItemID, dxlib_d.DxDataType.TCHAR* NameBuffer); 1088 1089 /** 1090 * メニューをリソースから読み込む 1091 */ 1092 extern int LoadMenuResource(int MenuResourceID); 1093 1094 /** 1095 * メニューの選択項目が選択されたときに呼ばれるコールバック関数を設定する 1096 * 1097 * Params: 1098 * CallBackFunction = 項目が選択されたときに呼ばれるコールバック関数、引数に項目名と項目の識別番号を渡されて呼ばれる 1099 * ItemName = ? 1100 * ItemID = ? 1101 */ 1102 extern int SetMenuItemSelectCallBackFunction(void function(const (dxlib_d.DxDataType.TCHAR)* ItemName, int ItemID) CallBackFunction); 1103 1104 /** 1105 * (古い関数)ウインドウにメニューを設定する 1106 */ 1107 extern int SetWindowMenu(int MenuID, int function(dxlib_d.DxDataType.WORD ID) MenuProc); 1108 1109 /** 1110 * (古い関数)メニューを表示するかどうかをセットする 1111 */ 1112 extern int SetDisplayMenuFlag(int Flag); 1113 1114 /** 1115 * (古い関数)メニューを表示しているかどうかを取得する 1116 */ 1117 extern int GetDisplayMenuFlag(); 1118 1119 /** 1120 * メニューを使用しているかどうかを得る 1121 */ 1122 extern int GetUseMenuFlag(); 1123 1124 /** 1125 * フルスクリーン時にメニューを自動で表示したり非表示にしたりするかどうかのフラグをセットする 1126 */ 1127 extern int SetAutoMenuDisplayFlag(int Flag); 1128 1129 // DxNetwork.cpp関数プロトタイプ宣言 1130 1131 version (DX_NON_NETWORK) { 1132 } else { 1133 /** 1134 * WinSockで最後に発生したエラーのコードを取得する 1135 */ 1136 extern int GetWinSockLastError(); 1137 } 1138 1139 // DxInputString.cpp関数プロトタイプ宣言 1140 1141 version (DX_NON_KEYEX) { 1142 } else { 1143 /** 1144 * IMEの漢字変換候補表示の処理にTSFを使用するかどうかを設定する 1145 * 1146 * Params: 1147 * UseFlag = dxlib_d.DxDataType.TRUE:使用する(デフォルト) dxlib_d.DxDataType.FALSE:使用しない 1148 */ 1149 extern int SetUseTSFFlag(int UseFlag); 1150 } 1151 1152 // DxInput.cpp関数プロトタイプ宣言 1153 1154 version (DX_NON_INPUT) { 1155 } else { 1156 /** 1157 * DirectInputのキーボードの協調レベルを排他レベルにするかどうかを設定する、DxLib_Initの呼び出し前でのみ実行可能 1158 * 1159 * Params: 1160 * Flag = dxlib_d.DxDataType.TRUE:排他レベルにする dxlib_d.DxDataType.FALSE:標準レベルにする(デフォルト) 1161 */ 1162 extern int SetKeyExclusiveCooperativeLevelFlag(int Flag); 1163 1164 /** 1165 * キーボードの入力処理にDirectInputを使わないかどうかを設定する 1166 * 1167 * Params: 1168 * Flag = dxlib_d.DxDataType.TRUE:DirectInputを使わず、Windows標準機能を使用する dxlib_d.DxDataType.FALSE:DirectInputを使用する 1169 */ 1170 extern int SetKeyboardNotDirectInputFlag(int Flag); 1171 1172 /** 1173 * 入力処理にDirectInputを使用するかどうかを設定する 1174 * 1175 * Params: 1176 * UseFlag = dxlib_d.DxDataType.TRUE:DirectInputを使用する dxlib_d.DxDataType.FALSE:DirectInputを使わず、Windows標準機能を使用する 1177 */ 1178 extern int SetUseDirectInputFlag(int UseFlag); 1179 1180 /** 1181 * マウスの入力処理にDirectInputを使用する場合の動作モードを設定する 1182 * 1183 * Params: 1184 * Mode = 0:ウィンドウがアクティブな場合のみ DirectInputを使用する 1:ウィンドウのアクティブ状態に関係なく DirectInputを使用する 1185 */ 1186 extern int SetDirectInputMouseMode(int Mode); 1187 1188 /** 1189 * Xbox360コントローラの入力処理にXInputを使用するかどうかを設定する 1190 * 1191 * Params: 1192 * Flag = dxlib_d.DxDataType.TRUE:XInputを使用する(デフォルト) dxlib_d.DxDataType.FALSE:XInputを使用しない 1193 */ 1194 extern int SetUseXInputFlag(int Flag); 1195 1196 /** 1197 * Xbox360コントローラやXbox OneコントローラをDirectInputコントローラとしても検出するかどうかを設定する、DxLib_Initの呼び出し前でのみ実行可能 1198 * 1199 * Params: 1200 * Flag = dxlib_d.DxDataType.TRUE:DirectInputコントローラとしても検出する dxlib_d.DxDataType.FALSE:DirectInputコントローラとしては検出しない(デフォルト) 1201 */ 1202 extern int SetUseXboxControllerDirectInputFlag(int Flag); 1203 1204 /** 1205 * ジョイパッドのGUIDを得る 1206 */ 1207 extern int GetJoypadGUID(int PadIndex, dxlib_d.DxDataTypeWin.GUID* GuidInstanceBuffer, dxlib_d.DxDataTypeWin.GUID* GuidProductBuffer = null); 1208 1209 /** 1210 * ジョイパッドのデバイス登録名と製品登録名を取得する(InstanceNameBuffer, ProductNameBuffer共に260以上のバッファサイズが必要) 1211 */ 1212 extern int GetJoypadName(int InputType, dxlib_d.DxDataType.TCHAR* InstanceNameBuffer, dxlib_d.DxDataType.TCHAR* ProductNameBuffer); 1213 1214 /** 1215 * DXライブラリのキーコード(KEY_INPUT_Aなど)に対応するWindowsの仮想キーコード(VK_LEFTなど)を取得する 1216 * 1217 * Params: 1218 * KeyCode = 変換したいDXライブラリのキーコード 1219 * 1220 * Returns: Windowsの仮想キーコード 1221 */ 1222 extern int ConvertKeyCodeToVirtualKey(int KeyCode); 1223 1224 /** 1225 * Windowsの仮想キーコード(VK_LEFTなど)に対応するDXライブラリのキーコード(KEY_INPUT_Aなど)を取得する 1226 * 1227 * Params: 1228 * VirtualKey = 変換したいWindowsの仮想キーコード 1229 * 1230 * Returns: DXライブラリのキーコード 1231 */ 1232 extern int ConvertVirtualKeyToKeyCode(int VirtualKey); 1233 } 1234 1235 version (DX_NOTUSE_DRAWFUNCTION) { 1236 } else { 1237 // 画像からグラフィックハンドルを作成する関数 1238 1239 /** 1240 * 画像リソースからグラフィックハンドルを作成する 1241 */ 1242 extern int LoadGraphToResource(int ResourceID); 1243 1244 /** 1245 * 画像リソースを分割してグラフィックハンドルを作成する 1246 */ 1247 extern int LoadDivGraphToResource(int ResourceID, int AllNum, int XNum, int YNum, int XSize, int YSize, int* HandleArray); 1248 1249 /** 1250 * 画像リソースを分割してグラフィックハンドルを作成する(float型) 1251 */ 1252 extern int LoadDivGraphFToResource(int ResourceID, int AllNum, int XNum, int YNum, float XSize, float YSize, int* HandleArray); 1253 1254 /** 1255 * 画像リソースからグラフィックハンドルを作成する 1256 */ 1257 extern int LoadGraphToResource(const (dxlib_d.DxDataType.TCHAR)* ResourceName, const (dxlib_d.DxDataType.TCHAR)* ResourceType); 1258 1259 /** 1260 * 画像リソースからグラフィックハンドルを作成する 1261 */ 1262 extern int LoadGraphToResourceWithStrLen(const (dxlib_d.DxDataType.TCHAR)* ResourceName, size_t ResourceNameLength, const (dxlib_d.DxDataType.TCHAR)* ResourceType, size_t ResourceTypeLength); 1263 1264 /** 1265 * 画像リソースを分割してグラフィックハンドルを作成する 1266 */ 1267 extern int LoadDivGraphToResource(const (dxlib_d.DxDataType.TCHAR)* ResourceName, const (dxlib_d.DxDataType.TCHAR)* ResourceType, int AllNum, int XNum, int YNum, int XSize, int YSize, int* HandleArray); 1268 1269 /** 1270 * 画像リソースを分割してグラフィックハンドルを作成する 1271 */ 1272 extern int LoadDivGraphToResourceWithStrLen(const (dxlib_d.DxDataType.TCHAR)* ResourceName, size_t ResourceNameLength, const (dxlib_d.DxDataType.TCHAR)* ResourceType, size_t ResourceTypeLength, int AllNum, int XNum, int YNum, int XSize, int YSize, int* HandleArray); 1273 1274 /** 1275 * 画像リソースを分割してグラフィックハンドルを作成する(float型) 1276 */ 1277 extern int LoadDivGraphFToResource(const (dxlib_d.DxDataType.TCHAR)* ResourceName, const (dxlib_d.DxDataType.TCHAR)* ResourceType, int AllNum, int XNum, int YNum, float XSize, float YSize, int* HandleArray); 1278 1279 /** 1280 * 画像リソースを分割してグラフィックハンドルを作成する(float型) 1281 */ 1282 extern int LoadDivGraphFToResourceWithStrLen(const (dxlib_d.DxDataType.TCHAR)* ResourceName, size_t ResourceNameLength, const (dxlib_d.DxDataType.TCHAR)* ResourceType, size_t ResourceTypeLength, int AllNum, int XNum, int YNum, float XSize, float YSize, int* HandleArray); 1283 1284 version (DX_NON_DIRECT3D11) { 1285 } else { 1286 /** 1287 * ID3D11Texture2D からグラフィックハンドルを作成する 1288 */ 1289 extern int CreateGraphFromID3D11Texture2D(const (void)* pID3D11Texture2D); 1290 } 1291 1292 // 画像情報関係関数 1293 1294 /** 1295 * グラフィックハンドルが持つ ID3D11Texture2Dを取得する(Direct3D11を使用している場合のみ有効)(戻り値をID3D11Texture2D*にキャストしてください) 1296 */ 1297 extern const (void)* GetGraphID3D11Texture2D(int GrHandle); 1298 1299 /** 1300 * グラフィックハンドルが持つ ID3D11RenderTargetViewを取得する(Direct3D11を使用していて、且つ MakeScreenで作成したグラフィックハンドルでのみ有効)(戻り値をID3D11RenderTargetView*にキャストしてください) 1301 */ 1302 extern const (void)* GetGraphID3D11RenderTargetView(int GrHandle); 1303 1304 /** 1305 * グラフィックハンドルが持つ ID3D11DepthStencilViewを取得する(Direct3D11を使用していて、且つ MakeScreenで作成したグラフィックハンドルでのみ有効)(戻り値をID3D11DepthStencilView*にキャストしてください) 1306 */ 1307 extern const (void)* GetGraphID3D11DepthStencilView(int GrHandle); 1308 1309 // 画面関係関数 1310 1311 /** 1312 * 裏画面の内容を指定のウインドウに転送する 1313 */ 1314 extern int BltBackScreenToWindow(dxlib_d.DxDataTypeWin.HWND Window, int ClientX, int ClientY); 1315 1316 /** 1317 * 裏画面の指定の領域をウインドウのクライアント領域の指定の領域に転送する 1318 */ 1319 extern int BltRectBackScreenToWindow(dxlib_d.DxDataTypeWin.HWND Window, dxlib_d.DxDataType.RECT BackScreenRect, dxlib_d.DxDataType.RECT WindowClientRect); 1320 1321 /** 1322 * ScreenFlipで画像を転送する先のウインドウを設定する(nullを指定すると設定解除) 1323 */ 1324 extern int SetScreenFlipTargetWindow(dxlib_d.DxDataTypeWin.HWND TargetWindow, double ScaleX = 1.0, double ScaleY = 1.0); 1325 1326 /** 1327 * デスクトップ画面から指定領域の画像情報をグラフィックハンドルに転送する 1328 */ 1329 extern int GetDesktopScreenGraph(int x1, int y1, int x2, int y2, int GrHandle, int DestX = 0, int DestY = 0); 1330 1331 /** 1332 * デスクトップ画面から指定領域の画像のメモリイメージの先頭アドレスとイメージの幅・高さ・ストライドを取得する(イメージのフォーマットはColorBitDepth = 32(バイト順でB8G8R8X8の32bitカラー) ColorBitDepth = 24(バイト順でB8G8R8の24bitカラー)) 1333 */ 1334 extern void* GetDesktopScreenGraphMemImage(int x1, int y1, int x2, int y2, int* Width, int* Height, int* Stride, int ColorBitDepth = 32); 1335 1336 // その他設定関係関数 1337 1338 /** 1339 * DirectDrawやDirect3Dの協調レベルをマルチスレッド対応にするかどうかをセットする 1340 * 1341 * Params: 1342 * Flag = dxlib_d.DxDataType.TRUE:マルチスレッド対応にする dxlib_d.DxDataType.FALSE:マルチスレッド対応にしない(デフォルト) 1343 */ 1344 extern int SetMultiThreadFlag(int Flag); 1345 1346 /** 1347 * 使用するDirectDrawデバイスのインデックスを設定する 1348 */ 1349 extern int SetUseDirectDrawDeviceIndex(int Index); 1350 1351 /** 1352 * Vista,7のWindows Aeroを無効にするかどうかを設定する(DxLib_Initの前に呼ぶ必要があります) 1353 * 1354 * Params: 1355 * Flag = dxlib_d.DxDataType.TRUE:無効にする(デフォルト) dxlib_d.DxDataType.FALSE:有効にする 1356 */ 1357 extern int SetAeroDisableFlag(int Flag); 1358 1359 /** 1360 * Vista以降の環境でDirect3D9Exを使用するかどうかを設定する(DxLib_Initの前に呼ぶ必要があります) 1361 * 1362 * Params: 1363 * Flag = dxlib_d.DxDataType.TRUE:使用する(デフォルト) dxlib_d.DxDataType.FALSE:使用しない 1364 */ 1365 extern int SetUseDirect3D9Ex(int Flag); 1366 1367 /** 1368 * Direct3D11を使用するかどうかを設定する 1369 * 1370 * Params: 1371 * Flag = dxlib_d.DxDataType.TRUE:使用する dxlib_d.DxDataType.FALSE:使用しない 1372 */ 1373 extern int SetUseDirect3D11(int Flag); 1374 1375 /** 1376 * Direct3D11で使用する最低機能レベルを指定する関数です、尚、DX_DIRECT3D_11_FEATURE_LEVEL_11_0より低い機能レベルでの正常な動作は保証しません(デフォルトはDX_DIRECT3D_11_FEATURE_LEVEL_11_0) 1377 * 1378 * Params: 1379 * Level = DX_DIRECT3D_11_FEATURE_LEVEL_10_0など 1380 */ 1381 extern int SetUseDirect3D11MinFeatureLevel(int Level); 1382 1383 /** 1384 * D3D_DRIVER_TYPE_WARP タイプのDirect3D 11ドライバを使用するかどうかを設定する 1385 * 1386 * Params: 1387 * Flag = dxlib_d.DxDataType.TRUE:使用する dxlib_d.DxDataType.FALSE:使用しない(デフォルト) 1388 */ 1389 extern int SetUseDirect3D11WARPDriver(int Flag); 1390 1391 /** 1392 * 使用するDirect3Dのバージョンを設定する、DxLib_Init呼び出しの前でのみ使用可能 1393 * 1394 * Params: 1395 * Version = DX_DIRECT3D_9など 1396 */ 1397 extern int SetUseDirect3DVersion(int Version); 1398 1399 /** 1400 * 使用しているDirect3Dのバージョンを取得する 1401 * 1402 * Returns: DX_DIRECT3D_9など 1403 */ 1404 extern int GetUseDirect3DVersion(); 1405 1406 /** 1407 * 使用しているDirect3D11のFeatureLevel(DX_DIRECT3D_11_FEATURE_LEVEL_9_1等)を取得する 1408 * 1409 * Returns: -1:エラー -1以外:Feature Level 1410 */ 1411 extern int GetUseDirect3D11FeatureLevel(); 1412 1413 /** 1414 * 使用するグラフィックスデバイスのアダプターのインデックスを設定する 1415 */ 1416 extern int SetUseDirect3D11AdapterIndex(int Index); 1417 1418 /** 1419 * (同効果のSetUseSoftwareRenderModeFlagを使用して下さい)DirectDrawを使用するかどうかを設定する 1420 */ 1421 extern int SetUseDirectDrawFlag(int Flag); 1422 1423 /** 1424 * GDI描画を使用するかどうかを設定する 1425 */ 1426 extern int SetUseGDIFlag(int Flag); 1427 1428 /** 1429 * GDI描画を使用するかどうかを取得する 1430 */ 1431 extern int GetUseGDIFlag(); 1432 1433 /** 1434 * DirectDrawが使用するGUIDを設定する 1435 */ 1436 extern int SetDDrawUseGuid(const (dxlib_d.DxDataTypeWin.GUID)* Guid); 1437 1438 /** 1439 * 現在使用しているDirectDrawオブジェクトのアドレスを取得する(戻り値をIDirectDraw7*にキャストして下さい) 1440 */ 1441 extern const (void)* GetUseDDrawObj(); 1442 1443 /** 1444 * 有効な DirectDrawデバイスのGUIDを取得する 1445 */ 1446 extern const (dxlib_d.DxDataTypeWin.GUID)* GetDirectDrawDeviceGUID(int Number); 1447 1448 /** 1449 * 有効な DirectDrawデバイスの名前を取得する 1450 */ 1451 extern int GetDirectDrawDeviceDescription(int Number, char* StringBuffer); 1452 1453 /** 1454 * 有効な DirectDrawデバイスの数を取得する 1455 */ 1456 extern int GetDirectDrawDeviceNum(); 1457 1458 /** 1459 * 使用中のDirect3DDevice9オブジェクトを取得する(戻り値をIDirect3DDevice9*にキャストして下さい) 1460 */ 1461 extern const (void)* GetUseDirect3DDevice9(); 1462 1463 /** 1464 * 使用中のバックバッファのDirect3DSurface9オブジェクトを取得する(戻り値をD_IDirect3DSurface9*にキャストしてください) 1465 */ 1466 extern const (void)* GetUseDirect3D9BackBufferSurface(); 1467 1468 /** 1469 * 使用中のID3D11Deviceオブジェクトを取得する(戻り値をID3D11Device*にキャストして下さい) 1470 */ 1471 extern const (void)* GetUseDirect3D11Device(); 1472 1473 /** 1474 * 使用中のID3D11DeviceContextオブジェクトを取得する(戻り値をID3D11DeviceContext*にキャストして下さい) 1475 */ 1476 extern const (void)* GetUseDirect3D11DeviceContext(); 1477 1478 /** 1479 * 使用中のバックバッファのID3D11Texture2Dオブジェクトを取得する(戻り値をID3D11Texture2D*にキャストしてください) 1480 */ 1481 extern const (void)* GetUseDirect3D11BackBufferTexture2D(); 1482 1483 /** 1484 * 使用中のバックバッファのID3D11RenderTargetViewオブジェクトを取得する(戻り値をID3D11RenderTargetView*にキャストしてください) 1485 */ 1486 extern const (void)* GetUseDirect3D11BackBufferRenderTargetView(); 1487 1488 /** 1489 * 使用中の深度ステンシルバッファのID3D11Texture2Dオブジェクトを取得する(戻り値をID3D11Texture2D*にキャストしてください) 1490 */ 1491 extern const (void)* GetUseDirect3D11DepthStencilTexture2D(); 1492 1493 /** 1494 * 指定のID3D11RenderTargetViewを描画対象にする(pID3D11DepthStencilViewがnullの場合はデフォルトの深度ステンシルバッファを使用する) 1495 */ 1496 extern int SetDrawScreen_ID3D11RenderTargetView(const (void)* pID3D11RenderTargetView, const (void)* pID3D11DepthStencilView = null); 1497 1498 /** 1499 * DXライブラリが行ったDirect3Dの設定を再度行う(特殊用途) 1500 */ 1501 extern int RefreshDxLibDirect3DSetting(); 1502 1503 version (DX_NON_MEDIA_FOUNDATION) { 1504 } else { 1505 /** 1506 * Media Foundationを使用するかどうかを設定する 1507 * 1508 * Params: 1509 * Flag = dxlib_d.DxDataType.TRUE:使用する(デフォルト) dxlib_d.DxDataType.FALSE:使用しない 1510 */ 1511 extern int SetUseMediaFoundationFlag(int Flag); 1512 } 1513 1514 // 色情報取得用関数 1515 1516 /** 1517 * 色ビット情報解析 1518 */ 1519 extern int ColorKaiseki(const (void)* PixelData, dxlib_d.DxLib.COLORDATA* ColorData); 1520 1521 // DxMask.cpp 関数プロトタイプ宣言 1522 version (DX_NON_MASK) { 1523 } else { 1524 /** 1525 * マスクハンドルにBMPデータを転送する 1526 */ 1527 extern int BmpBltToMask(dxlib_d.DxDataType.HBITMAP Bmp, int BmpPointX, int BmpPointY, int MaskHandle); 1528 } 1529 } 1530 1531 // DxFont.cpp 関数プロトタイプ宣言 1532 1533 version (DX_NON_FONT) { 1534 } else { 1535 /** 1536 * 指定のフォントファイルをシステムに追加する 1537 * 1538 * Returns: null:失敗 NULL以外:フォントハンドル(WindowsOSのものなので、DXライブラリのフォントハンドルとは別物です) 1539 */ 1540 extern dxlib_d.DxDataTypeWin.HANDLE AddFontFile(const (dxlib_d.DxDataType.TCHAR)* FontFilePath); 1541 1542 /** 1543 * 指定のフォントファイルをシステムに追加する 1544 * 1545 * Returns: null:失敗 NULL以外:フォントハンドル(WindowsOSのものなので、DXライブラリのフォントハンドルとは別物です) 1546 */ 1547 extern dxlib_d.DxDataTypeWin.HANDLE AddFontFileWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FontFilePath, size_t FontFilePathLength); 1548 1549 /** 1550 * 指定のメモリアドレスに展開したフォントファイルイメージをシステムに追加する) 1551 * 1552 * Returns: null:失敗 NULL以外:フォントハンドル(WindowsOSのものなので、DXライブラリのフォントハンドルとは別物です 1553 */ 1554 extern dxlib_d.DxDataTypeWin.HANDLE AddFontFileFromMem(const (void)* FontFileImage, int FontFileImageSize); 1555 1556 /** 1557 * 指定のフォントハンドルをシステムから削除する(引数はAddFontFileやAddFontFileFromMemの戻り値) 1558 */ 1559 extern int RemoveFontFile(dxlib_d.DxDataTypeWin.HANDLE FontHandle); 1560 1561 version (DX_NON_SAVEFUNCTION) { 1562 } else { 1563 /** 1564 * フォントデータファイルを作成する 1565 */ 1566 extern int CreateFontDataFile(const (dxlib_d.DxDataType.TCHAR)* SaveFilePath, const (dxlib_d.DxDataType.TCHAR)* FontName, int Size, int BitDepth /* DX_FONTIMAGE_BIT_1等 */, int Thick, int Italic = dxlib_d.DxDataType.FALSE, int CharSet = -1, const (dxlib_d.DxDataType.TCHAR)* SaveCharaList = null); 1567 1568 /** 1569 * フォントデータファイルを作成する 1570 */ 1571 extern int CreateFontDataFileWithStrLen(const (dxlib_d.DxDataType.TCHAR)* SaveFilePath, size_t SaveFilePathLength, const (dxlib_d.DxDataType.TCHAR)* FontName, size_t FontNameLength, int Size, int BitDepth /* DX_FONTIMAGE_BIT_1等 */, int Thick, int Italic = dxlib_d.DxDataType.FALSE, int CharSet = -1, const (dxlib_d.DxDataType.TCHAR)* SaveCharaList = null, size_t SaveCharaListLength = 0); 1572 } 1573 } 1574 1575 // 基本イメージデータのロード+DIB関係 1576 1577 /** 1578 * 画像ファイルからDIBデータを作成する 1579 */ 1580 extern dxlib_d.DxDataType.HBITMAP CreateDIBGraph(const (dxlib_d.DxDataType.TCHAR)* FileName, int ReverseFlag, dxlib_d.DxLib.COLORDATA* SrcColor); 1581 1582 /** 1583 * 画像ファイルからDIBデータを作成する 1584 */ 1585 extern dxlib_d.DxDataType.HBITMAP CreateDIBGraphWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, int ReverseFlag, dxlib_d.DxLib.COLORDATA* SrcColor); 1586 1587 /** 1588 * BMPデータからDIBデータクを作成する 1589 */ 1590 extern dxlib_d.DxDataType.HBITMAP CreateDIBGraphToMem(const (dxlib_d.DxDataType.BITMAPINFO)* BmpInfo, const (void)* GraphData, int ReverseFlag, dxlib_d.DxLib.COLORDATA* SrcColor); 1591 1592 /** 1593 * 画像ファイルからDIBデータとマスク用DIBデータを作成する 1594 */ 1595 extern int CreateDIBGraph_plus_Alpha(const (dxlib_d.DxDataType.TCHAR)* FileName, dxlib_d.DxDataType.HBITMAP* RGBBmp, dxlib_d.DxDataType.HBITMAP* AlphaBmp, int ReverseFlag = dxlib_d.DxDataType.FALSE, dxlib_d.DxLib.COLORDATA* SrcColor = null); 1596 1597 /** 1598 * 画像ファイルからDIBデータとマスク用DIBデータを作成する 1599 */ 1600 extern int CreateDIBGraph_plus_AlphaWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, dxlib_d.DxDataType.HBITMAP* RGBBmp, dxlib_d.DxDataType.HBITMAP* AlphaBmp, int ReverseFlag = dxlib_d.DxDataType.FALSE, dxlib_d.DxLib.COLORDATA* SrcColor = null); 1601 1602 /** 1603 * 画像ファイル若しくはメモリ上に展開された画像ファイルイメージからDIBデータを作成する 1604 */ 1605 extern dxlib_d.DxDataType.HBITMAP CreateDIBGraphVer2(const (dxlib_d.DxDataType.TCHAR)* FileName, const (void)* MemImage, int MemImageSize, int ImageType, int ReverseFlag, dxlib_d.DxLib.COLORDATA* SrcColor); 1606 1607 /** 1608 * 画像ファイル若しくはメモリ上に展開された画像ファイルイメージからDIBデータを作成する 1609 */ 1610 extern dxlib_d.DxDataType.HBITMAP CreateDIBGraphVer2WithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, const (void)* MemImage, int MemImageSize, int ImageType, int ReverseFlag, dxlib_d.DxLib.COLORDATA* SrcColor); 1611 1612 /** 1613 * 画像ファイル若しくはメモリ上に展開された画像ファイルイメージからDIBデータとマスク用DIBデータを作成する 1614 */ 1615 extern int CreateDIBGraphVer2_plus_Alpha(const (dxlib_d.DxDataType.TCHAR)* FileName, const (void)* MemImage, int MemImageSize, const (void)* AlphaImage, int AlphaImageSize, int ImageType, dxlib_d.DxDataType.HBITMAP* RGBBmp, dxlib_d.DxDataType.HBITMAP* AlphaBmp, int ReverseFlag, dxlib_d.DxLib.COLORDATA* SrcColor); 1616 1617 /** 1618 * 画像ファイル若しくはメモリ上に展開された画像ファイルイメージからDIBデータとマスク用DIBデータを作成する 1619 */ 1620 extern int CreateDIBGraphVer2_plus_AlphaWithStrLen(const (dxlib_d.DxDataType.TCHAR)* FileName, size_t FileNameLength, const (void)* MemImage, int MemImageSize, const (void)* AlphaImage, int AlphaImageSize, int ImageType, dxlib_d.DxDataType.HBITMAP* RGBBmp, dxlib_d.DxDataType.HBITMAP* AlphaBmp, int ReverseFlag, dxlib_d.DxLib.COLORDATA* SrcColor); 1621 1622 /** 1623 * BMPデータから基本イメージデータを構築する 1624 * 1625 * Returns: 0:正常終了 1:コピーを行った -1:エラー 1626 */ 1627 extern int ConvBitmapToGraphImage(const (dxlib_d.DxDataType.BITMAPINFO)* BmpInfo, void* GraphData, dxlib_d.DxLib.BASEIMAGE* GraphImage, int CopyFlag); 1628 1629 /** 1630 * 基本イメージデータをBMPデータに変換するGraphImageをBMPに変換する(アルファデータはあっても無視される) 1631 * 1632 * Returns: 0:正常終了 1:コピーを行った -1:エラー 1633 */ 1634 extern int ConvGraphImageToBitmap(const (dxlib_d.DxLib.BASEIMAGE)* GraphImage, dxlib_d.DxDataType.BITMAPINFO* BmpInfo, void** GraphData, int CopyFlag, int FullColorConv = dxlib_d.DxDataType.TRUE); 1635 1636 // 基本イメージデータ構造体関係 1637 1638 /** 1639 * 基本イメージデータを使用して UpdateLayerdWindowを行う 1640 */ 1641 extern int UpdateLayerdWindowForBaseImage(const (dxlib_d.DxLib.BASEIMAGE)* BaseImage); 1642 1643 /** 1644 * 基本イメージデータの指定の範囲を使用して UpdateLayerdWindowを行う 1645 */ 1646 extern int UpdateLayerdWindowForBaseImageRect(const (dxlib_d.DxLib.BASEIMAGE)* BaseImage, int x1, int y1, int x2, int y2); 1647 1648 /** 1649 * 乗算済みアルファの基本イメージデータを使用して UpdateLayerdWindowを行う 1650 */ 1651 extern int UpdateLayerdWindowForPremultipliedAlphaBaseImage(const (dxlib_d.DxLib.BASEIMAGE)* BaseImage); 1652 1653 /** 1654 * 乗算済みアルファの基本イメージデータの指定の範囲を使用して UpdateLayerdWindowを行う 1655 */ 1656 extern int UpdateLayerdWindowForPremultipliedAlphaBaseImageRect(const (dxlib_d.DxLib.BASEIMAGE)* BaseImage, int x1, int y1, int x2, int y2); 1657 1658 // デスクトップキャプチャ 1659 1660 /** 1661 * デスクトップの指定の領域を基本イメージデータに転送する 1662 */ 1663 extern int GetDesktopScreenBaseImage(int x1, int y1, int x2, int y2, dxlib_d.DxLib.BASEIMAGE* BaseImage, int DestX, int DestY); 1664 1665 // DxSoftImage.cpp関数プロトタイプ宣言 1666 version (DX_NON_SOFTIMAGE) { 1667 } else { 1668 /** 1669 * ソフトウエアイメージハンドルを使用して UpdateLayerdWindowを行う 1670 */ 1671 extern int UpdateLayerdWindowForSoftImage(int SIHandle); 1672 1673 /** 1674 * ソフトウエアイメージハンドルの指定の範囲を使用して UpdateLayerdWindowを行う 1675 */ 1676 extern int UpdateLayerdWindowForSoftImageRect(int SIHandle, int x1, int y1, int x2, int y2); 1677 1678 /** 1679 * 乗算済みアルファのソフトウエアイメージハンドルを使用して UpdateLayerdWindowを行う 1680 */ 1681 extern int UpdateLayerdWindowForPremultipliedAlphaSoftImage(int SIHandle); 1682 1683 /** 1684 * 乗算済みアルファのソフトウエアイメージハンドルの指定の範囲を使用して UpdateLayerdWindowを行う 1685 */ 1686 extern int UpdateLayerdWindowForPremultipliedAlphaSoftImageRect(int SIHandle, int x1, int y1, int x2, int y2); 1687 1688 // デスクトップキャプチャ 1689 1690 /** 1691 * デスクトップの指定の領域をソフトウエアイメージハンドルに転送する 1692 */ 1693 extern int GetDesktopScreenSoftImage(int x1, int y1, int x2, int y2, int SIHandle, int DestX, int DestY); 1694 } 1695 1696 // DxSound.cpp関数プロトタイプ宣言 1697 version (DX_NON_SOUND) { 1698 } else { 1699 // サウンドデータ管理系関数 1700 1701 /** 1702 * サウンドリソースからサウンドハンドルを作成する 1703 */ 1704 extern int LoadSoundMemByResource(const (dxlib_d.DxDataType.TCHAR)* ResourceName, const (dxlib_d.DxDataType.TCHAR)* ResourceType, int BufferNum = 1); 1705 1706 /** 1707 * サウンドリソースからサウンドハンドルを作成する 1708 */ 1709 extern int LoadSoundMemByResourceWithStrLen(const (dxlib_d.DxDataType.TCHAR)* ResourceName, size_t ResourceNameLength, const (dxlib_d.DxDataType.TCHAR)* ResourceType, size_t ResourceTypeLength, int BufferNum = 1); 1710 1711 // 設定関係関数 1712 1713 /** 1714 * サウンドの処理をソフトウエアで行うかどうかを設定する 1715 * 1716 * Params: 1717 * Flag = dxlib_d.DxDataType.TRUE:ソフトウエア dxlib_d.DxDataType.FALSE:ハードウエア(デフォルト) 1718 */ 1719 extern int SetUseSoftwareMixingSoundFlag(int Flag); 1720 1721 /** 1722 * サウンドの再生にXAudioを使用するかどうかを設定する 1723 * 1724 * Params: 1725 * Flag = dxlib_d.DxDataType.TRUE:使用する dxlib_d.DxDataType.FALSE:使用しない(デフォルト) 1726 */ 1727 extern int SetEnableXAudioFlag(int Flag); 1728 1729 /** 1730 * サウンドの再生にWASAPIを使用するかどうかを設定する 1731 * 1732 * Params: 1733 * Flag = dxlib_d.DxDataType.TRUE:使用する dxlib_d.DxDataType.FALSE:使用しない(デフォルト) 1734 * IsExclusive = dxlib_d.DxDataType.TRUE:排他モードを使用する dxlib_d.DxDataType.FALSE:排他モードを使用しない 1735 * DevicePeriod = 再生遅延時間、100ナノ秒単位(100000で10ミリ秒)、-1でデフォルト値 1736 * SamplePerSec = サンプリングレート 1737 */ 1738 extern int SetEnableWASAPIFlag(int Flag, int IsExclusive = dxlib_d.DxDataType.TRUE, int DevicePeriod = -1, int SamplePerSec = 44100); 1739 1740 version (DX_NON_ASIO) { 1741 } else { 1742 /** 1743 * サウンドの再生にASIOを使用するかどうかを設定する 1744 * 1745 * Params: 1746 * Flag = dxlib_d.DxDataType.TRUE:使用する dxlib_d.DxDataType.FALSE:使用しない(デフォルト) 1747 * BufferSize = 再生バッファのサイズ、小さいほど遅延が少なくなりますが、処理が間に合わずにブツブツノイズが発生する可能性も高くなります(-1でデフォルト値) 1748 * SamplePerSec = サンプリングレート 1749 */ 1750 extern int SetEnableASIOFlag(int Flag, int BufferSize = -1, int SamplePerSec = 44100); 1751 } 1752 1753 // 情報取得系関数 1754 1755 /** 1756 * DXライブラリが使用しているDirectSound オブジェクトを取得する 1757 * 戻り値をIDirectSound*にキャストして下さい 1758 */ 1759 extern const (void)* GetDSoundObj(); 1760 1761 // MIDI制御関数 1762 1763 /** 1764 * リソース上のMIDIファイルからMIDIハンドルを作成する 1765 */ 1766 extern int LoadMusicMemByResource(const (dxlib_d.DxDataType.TCHAR)* ResourceName, const (dxlib_d.DxDataType.TCHAR)* ResourceType); 1767 1768 /** 1769 * リソース上のMIDIファイルからMIDIハンドルを作成する 1770 */ 1771 extern int LoadMusicMemByResourceWithStrLen(const (dxlib_d.DxDataType.TCHAR)* ResourceName, size_t ResourceNameLength, const (dxlib_d.DxDataType.TCHAR)* ResourceType, size_t ResourceTypeLength); 1772 1773 /** 1774 * リソースからMIDIファイルを読み込んで演奏する 1775 */ 1776 extern int PlayMusicByResource(const (dxlib_d.DxDataType.TCHAR)* ResourceName, const (dxlib_d.DxDataType.TCHAR)* ResourceType, int PlayType); 1777 1778 /** 1779 * リソースからMIDIファイルを読み込んで演奏する 1780 */ 1781 extern int PlayMusicByResourceWithStrLen(const (dxlib_d.DxDataType.TCHAR)* ResourceName, size_t ResourceNameLength, const (dxlib_d.DxDataType.TCHAR)* ResourceType, size_t ResourceTypeLength, int PlayType); 1782 } 1783 }