//////////////////////////////////////////
// AttribProc.h
// Copyright (c) 04/22/2020 by BCCSkelton
//////////////////////////////////////////

/////////////////////////////////
//主ウィンドウCMyWndの関数の定義
//ウィンドウメッセージ関数
/////////////////////////////////
bool CMyWnd::OnInit(WPARAM wParam, LPARAM lParam) {

	return FALSE;
}

bool CMyWnd::OnClose(WPARAM wParam, LPARAM lParam) {

	if(MessageBox(m_hWnd, "終了しますか", "終了確認",
					MB_YESNO | MB_ICONINFORMATION) == IDYES)
		//処理をするとDestroyWindow、PostQuitMessageが呼ばれる
		return TRUE;
	else
		//そうでなければウィンドウではDefWindowProc関数をreturn、ダイアログではreturn FALSEとなる。
		return FALSE;
}

//ダイアログベースの場合はこれが必要
bool CMyWnd::OnDestroy(WPARAM wPram, LPARAM lParam) {

	PostQuitMessage(0);
	return TRUE;
}

/////////////////////////////////
//主ウィンドウCMyWndの関数の定義
//メニュー項目、コントロール関数
/////////////////////////////////

bool CMyWnd::OnButton1() {

	char buff[MAX_PATH];
	DWORD attrib;
	
	if(GetDlgItemText(m_hWnd, IDC_EDIT, buff, MAX_PATH - 1) <= 0) {
		MessageBox(m_hWnd, "パス、ファイル名が取得できません", "エラー", MB_ICONERROR | MB_OK);
		return FALSE;
	}
	if((attrib = GetFileAttributes(buff)) == -1) {
		MessageBox(m_hWnd, "ファイルが見当たりません", "エラー", MB_ICONERROR | MB_OK);
		return FALSE;
	}
	CheckDlgButton(m_hWnd, IDC_CHECKBOX1, (attrib & FILE_ATTRIBUTE_SYSTEM) ? TRUE : FALSE);
	CheckDlgButton(m_hWnd, IDC_CHECKBOX2, (attrib & FILE_ATTRIBUTE_READONLY) ? TRUE : FALSE);
	CheckDlgButton(m_hWnd, IDC_CHECKBOX3, (attrib & FILE_ATTRIBUTE_ARCHIVE) ? TRUE : FALSE);
	CheckDlgButton(m_hWnd, IDC_CHECKBOX4, (attrib & FILE_ATTRIBUTE_HIDDEN) ? TRUE : FALSE);
   	return TRUE;
}

bool CMyWnd::OnButton2() {

	char buff[MAX_PATH];
	DWORD attrib = 0;

	if(GetDlgItemText(m_hWnd, IDC_EDIT, buff, MAX_PATH - 1) <= 0) {
		MessageBox(m_hWnd, "パス、ファイル名が取得できません", "エラー", MB_ICONERROR | MB_OK);
		return FALSE;
	}
	else {
		if(IsDlgButtonChecked(m_hWnd, IDC_CHECKBOX1)) attrib |= FILE_ATTRIBUTE_SYSTEM;
		if(IsDlgButtonChecked(m_hWnd, IDC_CHECKBOX2)) attrib |= FILE_ATTRIBUTE_READONLY;
		if(IsDlgButtonChecked(m_hWnd, IDC_CHECKBOX3)) attrib |= FILE_ATTRIBUTE_ARCHIVE;
		if(IsDlgButtonChecked(m_hWnd, IDC_CHECKBOX4)) attrib |= FILE_ATTRIBUTE_HIDDEN;
		if(!SetFileAttributes(buff, attrib))
			MessageBox(m_hWnd, "ファイル属性を変更できませんでした", "エラー", MB_ICONERROR | MB_OK);
	}
	return TRUE;
}

bool CMyWnd::OnButton3() {

	char* FileName = cmndlg.GetFileName(m_hWnd, "総てのファイル(*.*)\0*.*\0\0", TRUE);
	if(!FileName)
		MessageBox(m_hWnd, "操作はキャンセルされました", "メッセージ", MB_OK);
	else
		SetDlgItemText(m_hWnd, IDC_EDIT, FileName);
	return TRUE;
}

///////////////////////////////
//ユーザーダイアログの関数定義
//コントロール関数
///////////////////////////////
