// stdafx.h : 標準のシステム インクルード ファイルのインクルード ファイル、または
// 参照回数が多く、かつあまり変更されない、プロジェクト専用のインクルード ファイル
// を記述します。
//

#pragma once

// 下で指定された定義の前に対象プラットフォームを指定しなければならない場合、以下の定義を変更してください。
// 異なるプラットフォームに対応する値に関する最新情報については、MSDN を参照してください。
#ifndef WINVER				// Windows XP 以降のバージョンに固有の機能の使用を許可します。
#define WINVER 0x0500		// これを Windows の他のバージョン向けに適切な値に変更してください。
#endif

#ifndef _WIN32_WINNT		// Windows XP 以降のバージョンに固有の機能の使用を許可します。                   
#define _WIN32_WINNT 0x0500	// これを Windows の他のバージョン向けに適切な値に変更してください。
#endif						

#ifndef _WIN32_WINDOWS		// Windows 98 以降のバージョンに固有の機能の使用を許可します。
#define _WIN32_WINDOWS 0x0410 // これを Windows Me またはそれ以降のバージョン向けに適切な値に変更してください。
#endif

#ifndef _WIN32_IE			// IE 6.0 以降のバージョンに固有の機能の使用を許可します。
#define _WIN32_IE 0x0400	// これを IE. の他のバージョン向けに適切な値に変更してください。
#endif

#define _WIN32_DCOM

#define WIN32_LEAN_AND_MEAN		// Windows ヘッダーから使用されていない部分を除外します。

// Windows ヘッダー ファイル :
#include <windows.h>
#include <windowsx.h>
#include <commctrl.h>
#include <ShellAPI.h>
#include <commdlg.h>
#include <BaseTsd.h>
#include <winnt.h>
#include <cderr.h>
#include <winerror.h>
#include <Shlobj.h>
#include <Shlwapi.h>
#include <winsock.h>
#include <richedit.h>
#include <mmsystem.h>
#include <tchar.h>
#include <objbase.h>
#include <Htmlhelp.h>
#include "windows_xp.h"

// C RunTime ヘッダー ファイル
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <string.h>
#include <stdio.h>
#include <process.h>

#ifdef __cplusplus

// STL
#include <list>
#include <string>
#include <vector>
#include <new>
#include <stack>

// boostライブラリ
#pragma warning(disable : 4267)
#pragma warning(disable : 4244)

#include <boost/regex.hpp>

#pragma warning(default : 4244)
#pragma warning(default : 4267)
#endif /* __cplusplus */

// オリジナルライブラリ
#include <ccpu32.h>
#include <regclass.h>
#include <toolfunc.h>
#include <sakuralib.h>
#include <vcheck.h>
#include <sizedlg.h>

#ifdef __cplusplus
#include <comboboxqueue.h>
#endif /* __cplusplus */

// メッセージ
#define OSP_CTRL_GETFOCUS	WM_APP
#define OSP_CTRL_KEYDOWN	(WM_APP+1)
#define R7MW_STATUS_BAR		(WM_APP+2)
#define R7MW_READY			(WM_APP+3)
#define R7MW_SAVESETTINGS	(WM_APP+4)
#define OSP_CTRL_CHAR		(WM_APP+5)
#define R7SPL_DESTROY		(WM_APP+6)
#define R7MW_DELETEICONS	(WM_APP+7)

// スクリプトの一行の最大の長さ
#define LENGTH_LINE 2050

// 編集ダイアログ用インターバルタイマID
#define EDITDIALOG_TIMERID	6603

// OSP_CTRL_KEYDOWNメッセージのlParam用構造体
typedef struct {
	int iCtrl;	// rctrls内のコントロールの番号
	HWND hCtrl;	// コントロールハンドル
	int ctrl;	// コントロールの種類
	int retval;	// 呼び出し先のメッセージが代入する戻り値
} OSPCKDP, *LPOSPCKDP;

// エラー値の定義
#define NO_VALUE	0xffffffff
#define ERRORVALUE	0xffffffff
#define MAXINTEGER	0xffffffff
#define MININTEGER	0

// コントロールコードの定義
#define CTRL_A		1		// ListViewの全選択
#define CTRL_F		6		// ヘルプ画面の検索
#define CTRL_S		19		// ヘルプファイルの保存
#define CTRL_W		23		// 閉じる

// いじくるつくーる自身のレジストリキー
#define RNSF7REGKEY		"Software\\InaSoftAns\\Rnsf7\\CurrentVersion"
#define RNSF7INSTKEY	"Software\\InaSoftAns\\Rnsf7\\install"
#define RNSF7KEY		"Software\\InaSoftAns\\Rnsf7"

// C/C++別の外部変数参照

#ifndef EXTERN
#ifdef __cplusplus
#define EXTERN extern	"C"
#else /* __cplusplus */
#define EXTERN extern
#endif /* __cplusplus */
#endif /* EXTERN */

#define isNT	1
