#include "Misaka.h"

typedef BOOL __stdcall SETLAYER( HWND hwnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags );
SETLAYER    *SetLayeredWindowAttributes;
 HINSTANCE   hDllInst;  //終了処理で使用するので、広域変数等に取ります 

BOOL CreateShortCut( LPSTR, LPSTR, LPSTR, LPSTR, LPSTR );
HBRUSH hmyb; //グローバルあたりで宣言

void GetTime(TCHAR *length) {
    int total = 0, minutes = 0, seconds = 0, milliseconds = 0;
    total = atoi(length);
    milliseconds = total % 1000;
    total = total / 1000;
    seconds = total % 60;
    minutes = total / 60;
    wsprintf(length, "%02d: %02d: %02d", minutes, seconds, milliseconds);
}
typedef struct _ThreadParam3{
	HWND owner;
}ThreadParam3;
DWORD WINAPI ThreadFunc3(LPVOID vdParam){
	HDC hdc;
	ThreadParam3 param;

	param.owner=((ThreadParam3 *)vdParam)->owner;
	hdc=GetDC(param.owner);
	while(1){
		if(word>0){
			waku = 1;
			if(count==0){
				InvalidateRect(param.owner,NULL,FALSE);
			}
			count++;
			//OutputDebugString("hoge\n");
			if(count > 30){
				word = 0;
				waku = 0;
				count = 0;
				InvalidateRect(param.owner,NULL,TRUE);
			}
		}
		Sleep(250);
	}
	ReleaseDC(param.owner,hdc);
	return TRUE;
}
typedef struct _ThreadParam2{
	HWND owner;
}ThreadParam2;
DWORD WINAPI ThreadFunc2(LPVOID vdParam){
	HDC hdc;
	ThreadParam2 param;
	int SlcXml;

	param.owner=((ThreadParam2 *)vdParam)->owner;
	hdc=GetDC(param.owner);
	while(TRUE){
		
		GetRootTagName();

		srand((unsigned) time(NULL));
		SlcXml = rand() % 3;

		if(SlcXml==0){
			xmlSet=0;
		}else if(SlcXml==1){
			xmlSet=1;
		}else if(SlcXml==2){
			xmlSet=2;
		}else{
			xmlSet=0;
			strcpy(textOut1,"スレッド２で不正な値が代入されましたので初期化しました、とミサカは報告します");
		}

		Sleep(25000);
	}
	ReleaseDC(param.owner,hdc);
	return TRUE;
}
typedef struct _ThreadParam{
	HWND owner;
}ThreadParam;
DWORD WINAPI ThreadFunc(LPVOID vdParam){
	HDC hdc;
	ThreadParam param;

	param.owner=((ThreadParam *)vdParam)->owner;
	hdc=GetDC(param.owner);
	while(TRUE){
		//OutputDebugString("hoge\n");
		InvalidateRect(param.owner,&rect2,FALSE);
		Sleep(1000);
	}
	ReleaseDC(param.owner,hdc);
	return TRUE;
}
VOID ShowRSSEditter(HWND hWnd){
	ShowWindow(label[0],SW_SHOW);
	ShowWindow(edit[0],SW_SHOW);
	ShowWindow(edit[1],SW_SHOW);
	ShowWindow(edit[2],SW_SHOW);
	ShowWindow(btn[0],SW_SHOW);
	ShowWindow(btn[1],SW_SHOW);
	InvalidateRect(hWnd,NULL,TRUE);
}
VOID CloseRSSEditter(HWND hWnd){
	showPic = 0;
	ShowWindow(label[0],SW_HIDE);
	ShowWindow(edit[0],SW_HIDE);
	ShowWindow(edit[1],SW_HIDE);
	ShowWindow(edit[2],SW_HIDE);
	ShowWindow(btn[0],SW_HIDE);
	ShowWindow(btn[1],SW_HIDE);
	InvalidateRect(hWnd,NULL,TRUE);
}
VOID ShowTimer(HWND hWnd){
	ShowWindow(label[1],SW_SHOW);
	ShowWindow(label[2],SW_SHOW);
	ShowWindow(label[3],SW_SHOW);
	ShowWindow(label[4],SW_SHOW);
	ShowWindow(edit[3],SW_SHOW);
	ShowWindow(edit[4],SW_SHOW);
	ShowWindow(edit[5],SW_SHOW);
	ShowWindow(btn[2],SW_SHOW);
	ShowWindow(btn[3],SW_SHOW);
	InvalidateRect(hWnd,NULL,TRUE);
}
VOID CloseTimer(HWND hWnd){
	showPic = 0;
	ShowWindow(label[1],SW_HIDE);
	ShowWindow(label[2],SW_HIDE);
	ShowWindow(label[3],SW_HIDE);
	ShowWindow(label[4],SW_HIDE);
	ShowWindow(edit[3],SW_HIDE);
	ShowWindow(edit[4],SW_HIDE);
	ShowWindow(edit[5],SW_HIDE);
	ShowWindow(btn[2],SW_HIDE);
	ShowWindow(btn[3],SW_HIDE);
	InvalidateRect(hWnd,NULL,TRUE);
}
VOID DialogBox1(HWND hWnd){
	label[0]=CreateWindowEx(0, "static","RSS2.0のｱﾄﾞﾚｽを入力",WS_EX_TRANSPARENT|WS_CHILD|SS_SUNKEN,155, 5,250, 24,hWnd,NULL,(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
	label[1]=CreateWindowEx(0, "static","時間を半角数字で入力",WS_EX_TRANSPARENT|WS_CHILD|SS_SUNKEN,155, 5,250, 24,hWnd,NULL,(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
	label[2]=CreateWindowEx(0, "static","時",WS_EX_TRANSPARENT|WS_CHILD|SS_SUNKEN,206, 30,25, 24,hWnd,NULL,(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
	label[3]=CreateWindowEx(0, "static","分",WS_EX_TRANSPARENT|WS_CHILD|SS_SUNKEN,283, 30,25, 24,hWnd,NULL,(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
	label[4]=CreateWindowEx(0, "static","秒",WS_EX_TRANSPARENT|WS_CHILD|SS_SUNKEN,360, 30,25, 24,hWnd,NULL,(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
	edit[0]=CreateWindowEx(0,"EDIT",url1,WS_CHILD|WS_BORDER|ES_AUTOHSCROLL,155, 30,250, 24,hWnd,NULL,(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
	edit[1]=CreateWindowEx(0,"EDIT",url2,WS_CHILD|WS_BORDER|ES_AUTOHSCROLL,155, 50,250, 24,hWnd,NULL,(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE),NULL);			
	edit[2]=CreateWindowEx(0,"EDIT",url3,WS_CHILD|WS_BORDER|ES_AUTOHSCROLL,155, 70,250, 24,hWnd,NULL,(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
	edit[3]=CreateWindowEx(0,"EDIT","",WS_CHILD|WS_BORDER|ES_AUTOHSCROLL,155, 30,50, 24,hWnd,NULL,(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
	edit[4]=CreateWindowEx(0,"EDIT","",WS_CHILD|WS_BORDER|ES_AUTOHSCROLL,232, 30,50, 24,hWnd,NULL,(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE),NULL);			
	edit[5]=CreateWindowEx(0,"EDIT","",WS_CHILD|WS_BORDER|ES_AUTOHSCROLL,309, 30,50, 24,hWnd,NULL,(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
	btn[0]=CreateWindowEx(0,"BUTTON","OK",WS_CHILD|WS_TABSTOP,155, 100,90, 20,hWnd,(HMENU)ID_BTN1,(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
	btn[1]=CreateWindowEx(0,"BUTTON","キャンセル",WS_CHILD|WS_TABSTOP,155, 120,90, 20,hWnd,(HMENU)ID_BTN2,(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
	btn[2]=CreateWindowEx(0,"BUTTON","OK",WS_CHILD|WS_TABSTOP,155, 100,90, 20,hWnd,(HMENU)ID_BTN3,(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE),NULL);
	btn[3]=CreateWindowEx(0,"BUTTON","キャンセル",WS_CHILD|WS_TABSTOP,155, 120,90, 20,hWnd,(HMENU)ID_BTN4,(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE),NULL);

}
VOID UpdateCheck(){
	// COMライブラリの初期化
	::CoInitialize(NULL);

	//　ドキュメントのインスタンスを作成
	MSXML2::IXMLDOMDocument2Ptr pDoc;
	pDoc.CreateInstance( __uuidof(MSXML2::DOMDocument40) );
	pDoc->async = VARIANT_FALSE; 

	VARIANT_BOOL hr;

	hr = pDoc->load("http://sora-blue.net/~kuar/prog/update.xml");

	if(hr==VARIANT_FALSE){
		word = 1;
		strcpy(textOut1,"アップデートチェックに失敗しました、とミサカは報告します。");
	}else{
		word = 1;
	}


	// タグ名"channel"の全ての要素についてループ
	INodeListPtr plName = pDoc->getElementsByTagName("channel");
	for(int i=0; i<plName->Getlength(); i++){
		
		IElementPtr	peName = plName->Getitem(i);
		
		// タグ名"title"の要素を取得
		IElementPtr	peString	= peName->getElementsByTagName("title")->Getitem(0);
		_variant_t	str	= peString->Gettext();
		
		char getTitle[BUFFER_SIZE];
		WideCharToMultiByte(CP_ACP, 0,str.bstrVal,-1,getTitle ,BUFFER_SIZE, 0, 0);
		strcpy(textOut1,getTitle);

		//最新のタイトル取得
		IElementPtr	peItem	= peName->getElementsByTagName("title")->Getitem(1);
		_variant_t	itm	= peItem->Gettext();

		strcat(textOut1,"　");
		char getTitle2[BUFFER_SIZE];
		WideCharToMultiByte(CP_ACP, 0,itm.bstrVal,-1,getTitle2 ,BUFFER_SIZE, 0, 0);
		if(strcmp(version, getTitle2)==0){
			strcat(textOut1,"最新バージョンです。");
		}else{
			strcat(textOut1,"最新版は");
			strcat(textOut1,getTitle2);
			strcat(textOut1,"です、とミサカは報告します。現バージョンは");
			strcat(textOut1,version);
			strcat(textOut1,"です、とミサカは補足説明します。");
			ShellExecute(NULL,"open","http://sora-blue.net/~kuar/app.htm",NULL,NULL,SW_SHOWNORMAL);
		}
	}
}
VOID ShowMenu(){
	mii.cbSize = sizeof(MENUITEMINFO);
	mii.fMask = MIIM_TYPE|MIIM_ID;
	mii.fType = MFT_STRING;

	hMenu = CreateMenu();
	hSubMenu = CreatePopupMenu();
	hSubSubMenu = CreatePopupMenu();

	mii.fMask = MIIM_TYPE | MIIM_ID;
	mii.dwTypeData = TEXT("最前表示");
	mii.wID = IDM_WIND;
	InsertMenuItem(hSubMenu , 0 , TRUE , &mii);

	mii.fMask = MIIM_TYPE | MIIM_ID;
	mii.dwTypeData = TEXT("Windows起動時に起動");
	mii.wID = IDM_SET;
	InsertMenuItem(hSubMenu , 1 , TRUE , &mii);

	mii.fMask = MIIM_TYPE | MIIM_ID;
	mii.dwTypeData = TEXT("時計表示");
	mii.wID = IDM_HOGE;
	InsertMenuItem(hSubMenu , 2 , TRUE , &mii);

	mii.dwTypeData = TEXT("シリアルナンバー確認");
	mii.wID = IDM_SIRIAL;
	InsertMenuItem(hSubMenu , 3 , TRUE , &mii);

	mii.dwTypeData = TEXT("タイマー");
	mii.wID = IDM_SETTIMER1;
	InsertMenuItem(hSubMenu , 4 , TRUE , &mii);

	mii.dwTypeData = TEXT("アップデートチェック");
	mii.wID = IDM_UPDATE;
	InsertMenuItem(hSubMenu , 5 , TRUE , &mii);

	mii.fMask = MIIM_TYPE | MIIM_SUBMENU;
	mii.hSubMenu = hSubSubMenu;
	mii.dwTypeData = TEXT("RSS Reader");
	mii.wID = IDM_RSS;
	InsertMenuItem(hSubMenu , 6 , TRUE , &mii);
	mii.fMask = MIIM_TYPE| MIIM_ID;
	mii.dwTypeData = TEXT("RSSの編集");
	mii.wID = IDM_RSSEDIT;
	InsertMenuItem(hSubSubMenu , 7 , TRUE , &mii);

		mii.fMask = MIIM_TYPE| MIIM_ID;
		mii.dwTypeData = TEXT(url1);
		if(strcmp(url1,"")==0){
			mii.dwTypeData = TEXT("RSSが未記入です");
		}
		mii.wID = IDM_RSS1;
		InsertMenuItem(hSubSubMenu , 8 , TRUE , &mii);

		mii.fMask = MIIM_TYPE| MIIM_ID;
		mii.dwTypeData = TEXT(url2);
		if(strcmp(url2,"")==0){
			mii.dwTypeData = TEXT("RSSが未記入です");
		}
		mii.wID = IDM_RSS2;
		InsertMenuItem(hSubSubMenu , 9 , TRUE , &mii);

		mii.fMask = MIIM_TYPE| MIIM_ID;
		mii.dwTypeData = TEXT(url3);
		if(strcmp(url3,"")==0){
			mii.dwTypeData = TEXT("RSSが未記入です");
		}
		mii.wID = IDM_RSS3;
		InsertMenuItem(hSubSubMenu , 10 , TRUE , &mii);

	mii.hSubMenu = hSubMenu;
	mii.fMask = MIIM_TYPE| MIIM_ID;
	mii.dwTypeData = TEXT("終了");
	mii.wID = IDM_END;
	InsertMenuItem(hSubMenu , 11 , TRUE , &mii);

	mii.fMask = MIIM_TYPE | MIIM_SUBMENU;
	mii.hSubMenu = hSubMenu;
	mii.dwTypeData = TEXT("ファイル");
	InsertMenuItem(hMenu , 0 , TRUE , &mii);

	//SetMenu(hWnd , hMenu);
}
LRESULT CALLBACK WndProc(HWND hWnd,UINT msg,WPARAM wp,LPARAM lp){
	static ThreadParam param;
	DWORD dwID;

	//Paint
	HDC hdc;
	PAINTSTRUCT ps;
	static HDC hMemDC,hMemDC2,hMemDC3,hMemDC4;
	static HBITMAP hBitmap,hHukidashi,hHukidashi2,hHukidashi3;
	static BITMAP bitmap,bitmap2,bitmap3,bitmap4;
	static RECT rect;
	static HFONT hFont,DefFont;

	//コモンコントロール
	static char str[BUFFER_SIZE],str2[BUFFER_SIZE],str3[BUFFER_SIZE],timer1[BUFFER_SIZE],timer2[BUFFER_SIZE],timer3[BUFFER_SIZE],timerAll[BUFFER_SIZE];

	//Sound
	static MCI_OPEN_PARMS mop,endmop,sirialmop,timermop;
	static MCI_STATUS_PARMS mciStatus;
	int iErr,iErr2,iErr3,iErr4;
	TCHAR strErr[BUFFER_SIZE],strErr2[BUFFER_SIZE],strErr3[BUFFER_SIZE],strErr4[BUFFER_SIZE];
	static int aa = 0;

	//ini
	static DWORD windTop;
	static TCHAR strss[0xFF],strst[0xFF],strsu[0xFF],strsv[0xFF],strsw[0xFF],strsx[0xFF],strsy[0xFF],strrss1[0xFF],strrss2[0xFF],strrss3[0xFF];
	static DWORD ECount;
	static DWORD setShort;
	static DWORD setWatch;
	static DWORD sirialNomber[2];

	//window
	RECT winRect;
	static int windowLeft;
	static int windowBottom;

	//pass
	static char szPath[_MAX_PATH];
	static char desktopPath[_MAX_PATH];
	static char linkPath[_MAX_PATH];
	static char linkName[_MAX_PATH] = "\\Misaka.lnk";

	char drive[_MAX_DIR];
	char dir[_MAX_DIR];
	char fname[_MAX_FNAME];
	char ext[_MAX_EXT];
	char dilectPath[_MAX_PATH];
	char FilePath[_MAX_PATH];
	static char iniName[_MAX_PATH];

	char vo1[_MAX_PATH];
	char vo2[_MAX_PATH];
	char vo3[_MAX_PATH];
	char vo4[_MAX_PATH];

	GetModuleFileName(NULL, dilectPath, sizeof(dilectPath));
	_splitpath(dilectPath,drive,dir, fname, ext);
	strcpy(FilePath,drive);
	strcat(FilePath,dir);

	strcpy(iniName,FilePath);
	strcat(iniName,"test.ini");

	strcpy(vo1,FilePath);
	strcat(vo1,"bin\\voice01.wav");
	strcpy(vo2,FilePath);
	strcat(vo2,"bin\\voice02.wav");
	strcpy(vo3,FilePath);
	strcat(vo3,"bin\\voice03.wav");
	strcpy(vo4,FilePath);
	strcat(vo4,"bin\\voice04.wav");

	//watch
	time_t t = time(NULL);
	struct tm *dt;
	char s[128];
	char v[128];
	char u[128],z[256];

	switch(msg){
		case WM_DESTROY:
			DeleteDC(hMemDC);
			DeleteDC(hMemDC2);
			DeleteObject(hBitmap);
			DeleteObject(hHukidashi);
			DeleteObject(hHukidashi2);
			DeleteObject(hHukidashi3);
			mciSendCommand(mop.wDeviceID,MCI_CLOSE,0,0);
			mciSendCommand(endmop.wDeviceID,MCI_CLOSE,0,0);
			mciSendCommand(sirialmop.wDeviceID,MCI_CLOSE,0,0);
			mciSendCommand(timermop.wDeviceID,MCI_CLOSE,0,0);
			DeleteObject(hmyb);
			PostQuitMessage(0);
			break;
		case WM_CREATE:
			GetPrivateProfileString(INT_RSSSET1 , INI_RSS1 ,NULL, url1, BUFFER_SIZE , INI_FILE);
			GetPrivateProfileString(INT_RSSSET2 , INI_RSS2 ,NULL, url2, BUFFER_SIZE , INI_FILE);
			GetPrivateProfileString(INT_RSSSET3 , INI_RSS3 ,NULL, url3, BUFFER_SIZE , INI_FILE);

			param.owner = hWnd;
			CreateThread(NULL,0,ThreadFunc,(LPVOID)&param,0,&dwID);
			CreateThread(NULL,0,ThreadFunc2,(LPVOID)&param,0,&dwID);
			CreateThread(NULL,0,ThreadFunc3,(LPVOID)&param,0,&dwID);

			//コモンコントロール
			DialogBox1(hWnd);

			///////////////////////////////////////////////////////////////////////////////////////////////////////////
			//	位置
			///////////////////////////////////////////////////////////////////////////////////////////////////////////

			windowBottom = GetPrivateProfileInt(INT_SECNAME2 , INI_WINDOWBOTTOM , 0 , INI_FILE);
			windowLeft = GetPrivateProfileInt(INT_SECNAME3 , INI_WINDOWLEFT , 0 , INI_FILE);

			////////////////////////////////////////////////////////////////////////////////////////////////////////////
			//	画面表示
			////////////////////////////////////////////////////////////////////////////////////////////////////////////

			MoveWindow(hWnd, windowLeft, windowBottom, 410, 350, TRUE);
			SetLayeredWindowAttributes(hWnd, RGB(0, 0, 255), 0, 1);

			////////////////
			//	Menu
			///////////////
			ShowMenu();

			//////////////////////////////////////////////////////////////////////////////////////////////////////////////
			//	Font
			//////////////////////////////////////////////////////////////////////////////////////////////////////////////

			hFont = CreateFont(10,0,0,0,FALSE,FALSE,FALSE,FALSE,SHIFTJIS_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,VARIABLE_PITCH|FF_ROMAN,NULL);
			DefFont = CreateFont(16,0,0,0,FALSE,FALSE,FALSE,FALSE,SHIFTJIS_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,VARIABLE_PITCH|FF_ROMAN,NULL);

			//////////////////////////////////////////////////////////////////////////////////////////////////////////////
			//		メニュー設定
			//////////////////////////////////////////////////////////////////////////////////////////////////////////////

			mii.cbSize = sizeof(MENUITEMINFO);
			mii.fMask = MIIM_STATE;

			windTop = GetPrivateProfileInt(INT_SECNAME , INI_VALUENAME , 0 , INI_FILE);
			if(windTop==1){
				///////////////////////////////////////////////////////////////////////////////////////
				//	最前面表示の設定
				///////////////////////////////////////////////////////////////////////////////////////
				SetWindowPos( hWnd, HWND_TOPMOST, 0, 0, 0, 0, (SWP_SHOWWINDOW|SWP_NOMOVE|SWP_NOSIZE));
				GetMenuItemInfo(hSubMenu,IDM_WIND,FALSE,&mii);
				mii.fState = MFS_CHECKED;
				SetMenuItemInfo(hSubMenu,IDM_WIND,FALSE,&mii);
			}else if(windTop==0){
				//////////////////////////////////////////////////////////////////////////////////////
				//	最前面表示の解除
				//////////////////////////////////////////////////////////////////////////////////////
				SetWindowPos(hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, (SWP_SHOWWINDOW|SWP_NOMOVE|SWP_NOSIZE));
			}

			setShort = GetPrivateProfileInt(INT_SECNAME5,INI_SETSHORT , 0 , INI_FILE);
			if(setShort==1){
				GetMenuItemInfo(hSubMenu,IDM_SET,FALSE,&mii);
				mii.fState = MFS_CHECKED;
				SetMenuItemInfo(hSubMenu,IDM_SET,FALSE,&mii);
			}else if(setShort==0){}

			/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
			//	画像
			////////////////////////////////////////////////////////////////////////////////////////////////////////////////

			hMemDC = CreateCompatibleDC(NULL);
			hMemDC2 = CreateCompatibleDC(NULL);
			hMemDC3 = CreateCompatibleDC(NULL);
			hMemDC4 = CreateCompatibleDC(NULL);

			hBitmap = (HBITMAP)LoadImage(NULL , BMPFILE , IMAGE_BITMAP , 0 , 0 , LR_LOADFROMFILE);
			SelectObject(hMemDC , hBitmap);
			GetObject(hBitmap , sizeof(BITMAP) , &bitmap);

			hHukidashi = (HBITMAP)LoadImage(NULL,BMPHUKIDASHI,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
			SelectObject(hMemDC2 , hHukidashi);
			GetObject(hHukidashi , sizeof(BITMAP) , &bitmap2);

			hHukidashi2 = (HBITMAP)LoadImage(NULL,BMPHUKIDASHI2,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
			SelectObject(hMemDC3 , hHukidashi2);
			GetObject(hHukidashi2 , sizeof(BITMAP) , &bitmap3);

			hHukidashi3 = (HBITMAP)LoadImage(NULL,BMPHUKIDASHI3,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
			SelectObject(hMemDC4 , hHukidashi3);
			GetObject(hHukidashi3 , sizeof(BITMAP) , &bitmap4);
			
			////////////////////////////////////////////////////////////////////////////////////////////////////////////////
			//	シリアルナンバー
			////////////////////////////////////////////////////////////////////////////////////////////////////////////////
			sirialNomber[1] = GetPrivateProfileInt(INT_SECNAME7,INI_NOMBER , 0 , INI_FILE);
			if(sirialNomber[1]==0){
				srand((unsigned) time(NULL));
				for(int z=0;z<2;z++){
					sirialNomber[z] = rand() % 9969 + 10032;
				}
				wsprintf(strsx , TEXT("%s=%d\0") , INI_NOMBER , sirialNomber[1]);
				WritePrivateProfileSection(INT_SECNAME7 , strsx , INI_FILE);
			}
			
			//////////////////////////////////////////////////////////////////////////////////////////////////////////////
			//	音声
			//////////////////////////////////////////////////////////////////////////////////////////////////////////////

			mop.dwCallback = (DWORD)hWnd;
			mop.lpstrDeviceType = (LPTSTR)MCI_DEVTYPE_WAVEFORM_AUDIO;
			mop.lpstrElementName = TEXT(vo1);

			endmop.dwCallback = (DWORD)hWnd;
			endmop.lpstrDeviceType = (LPTSTR)MCI_DEVTYPE_WAVEFORM_AUDIO;
			endmop.lpstrElementName = TEXT(vo2);

			sirialmop.dwCallback = (DWORD)hWnd;
			sirialmop.lpstrDeviceType = (LPTSTR)MCI_DEVTYPE_WAVEFORM_AUDIO;
			sirialmop.lpstrElementName = TEXT(vo3);

			timermop.dwCallback = (DWORD)hWnd;
			timermop.lpstrDeviceType = (LPTSTR)MCI_DEVTYPE_WAVEFORM_AUDIO;
			timermop.lpstrElementName = TEXT(vo4);

			iErr = mciSendCommand(0,MCI_OPEN,MCI_OPEN_TYPE|MCI_OPEN_TYPE_ID|MCI_OPEN_ELEMENT,(DWORD)&mop);
			iErr2 = mciSendCommand(0,MCI_OPEN,MCI_OPEN_TYPE|MCI_OPEN_TYPE_ID|MCI_OPEN_ELEMENT,(DWORD)&endmop);
			iErr3 = mciSendCommand(0,MCI_OPEN,MCI_OPEN_TYPE|MCI_OPEN_TYPE_ID|MCI_OPEN_ELEMENT,(DWORD)&sirialmop);
			iErr4 = mciSendCommand(0,MCI_OPEN,MCI_OPEN_TYPE|MCI_OPEN_TYPE_ID|MCI_OPEN_ELEMENT,(DWORD)&timermop);


			if(iErr){
				mciGetErrorString(iErr,strErr,BUFFER_SIZE);
				MessageBox(hWnd,strErr,NULL,MB_OK);
				return -1;
			}
			if(iErr2){
				mciGetErrorString(iErr2,strErr2,BUFFER_SIZE);
				MessageBox(hWnd,strErr2,NULL,MB_OK);
				return -1;
			}
			if(iErr3){
				mciGetErrorString(iErr3,strErr3,BUFFER_SIZE);
				MessageBox(hWnd,strErr3,NULL,MB_OK);
				return -1;
			}
			if(iErr4){
				mciGetErrorString(iErr4,strErr4,BUFFER_SIZE);
				MessageBox(hWnd,strErr4,NULL,MB_OK);
				return -1;
			}

			return 0;
		case WM_PAINT:
			/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
			//	Text
			/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
			hdc = BeginPaint(hWnd , &ps);
			BitBlt(hdc , 0 , 60 , bitmap.bmWidth , bitmap.bmHeight ,hMemDC , 0 , 0 , SRCCOPY);
			if(showPic==1){
				BitBlt(hdc , 150 , 0 , bitmap4.bmWidth , bitmap4.bmHeight ,hMemDC4 , 0 , 0 , SRCCOPY);
			}
			if(waku!=0){
				BitBlt(hdc , 0 , 0 , bitmap2.bmWidth , bitmap2.bmHeight ,hMemDC2 , 0 , 0 , SRCCOPY);
				SetBkMode(hdc,TRANSPARENT);
				rect.right = 130;
				rect.left = 5;
				rect.top = 0;
				rect.bottom = 55;
				SelectObject(hdc,hFont);
				DrawText(hdc,textOut1,strlen(textOut1),&rect, DT_WORDBREAK|DT_EDITCONTROL|DT_END_ELLIPSIS );
			}
			SelectObject(hdc,DefFont);
			setWatch = GetPrivateProfileInt(INT_SECNAME6,INI_WATCH , 0 , INI_FILE);
			if(setWatch==1){
				GetMenuItemInfo(hSubMenu,IDM_HOGE,FALSE,&mii);
				mii.fState = MFS_CHECKED;
				SetMenuItemInfo(hSubMenu,IDM_HOGE,FALSE,&mii);

				///////////////////////////////////////////////////////////////////////////////////////////////////////////////
				//	Watch
				///////////////////////////////////////////////////////////////////////////////////////////////////////////////
				//Rectangle(hdc,0,260,100,320);
				BitBlt(hdc , 0 , 255 , bitmap3.bmWidth , bitmap3.bmHeight ,hMemDC3 , 0 , 0 , SRCCOPY);
				dt = localtime(&t);

				strftime(s, 128, "%Y年", dt);
				strftime(v, 128,"%m/%d(%a)",dt);
				strftime(u, 128, "%H:%M:%S", dt);

				strcpy(z,s);
				strcat(z,"\n");
				strcat(z,v);
				strcat(z,"\n");
				strcat(z,u);

				SetBkMode(hdc,TRANSPARENT);
				//wsprintf(watchStr , "%d" , s);
				rect2.right = 150;
				rect2.left = 5;
				rect2.top = 260;
				rect2.bottom = 310;
				DrawText(hdc,z,strlen(z),&rect2, DT_WORDBREAK|DT_EDITCONTROL|DT_END_ELLIPSIS );

				if(strcmp(timerAll, u)==0){
					word = 1;
					strcpy(textOut1,"時間になりました、とミサカは報告します。");
					mciSendCommand(timermop.wDeviceID,MCI_SEEK,MCI_SEEK_TO_START,0);
					mciSendCommand(timermop.wDeviceID,MCI_PLAY,0,0);
				}
			}else if(setShort==0){}

			EndPaint(hWnd , &ps);
			return 0;
		case WM_RBUTTONDOWN:
			return 0;
		case WM_RBUTTONUP:
			pt.x = LOWORD(lp);
			pt.y = HIWORD(lp);
			ClientToScreen(hWnd , &pt);
			TrackPopupMenu(hSubMenu , TPM_LEFTALIGN | TPM_TOPALIGN | TPM_RIGHTBUTTON,pt.x , pt.y , 0 , hWnd , NULL);
			return 0;
		case WM_MBUTTONDOWN:
			////////////////////////////////////////////////////////////////////////////////////////////////////////////
			//	Count
			////////////////////////////////////////////////////////////////////////////////////////////////////////////
			ECount = GetPrivateProfileInt(INT_SECNAME4 , INI_ECOUNT , 0 , INI_FILE);
			ECount++;
			wsprintf(strsu , TEXT("%s=%d\0") , INI_ECOUNT , ECount);
			WritePrivateProfileSection(INT_SECNAME4 , strsu , INI_FILE);

			////////////////////////////////////////////////////////////////////////////////////////////////////////////
			//	Sound
			////////////////////////////////////////////////////////////////////////////////////////////////////////////

			mciSendCommand(mop.wDeviceID,MCI_SEEK,MCI_SEEK_TO_START,0);
			mciSendCommand(mop.wDeviceID,MCI_PLAY,0,0);

			return 0;
		case WM_LBUTTONDOWN:
			PostMessage(hWnd,WM_NCLBUTTONDOWN,(WPARAM)HTCAPTION,lp);
			return 0;
		case WM_COMMAND:
			mii.cbSize = sizeof(MENUITEMINFO);
			mii.fMask = MIIM_STATE;

			switch(LOWORD(wp)){
			case IDM_WIND:
				if(windTop==0){

					///////////////////////////////////////////////////////////////////////////////////////////////
					//	最前面表示の設定
					////////////////////////////////////////////////////////////////////////////////////////////////

					SetWindowPos( hWnd, HWND_TOPMOST, 0, 0, 0, 0, (SWP_SHOWWINDOW|SWP_NOMOVE|SWP_NOSIZE));
					windTop = 1;
					wsprintf(strss , TEXT("%s=%d\0") , INI_VALUENAME , windTop);

					WritePrivateProfileSection(INT_SECNAME , strss , INI_FILE);
					GetMenuItemInfo(hSubMenu,IDM_WIND,FALSE,&mii);
					mii.fState = MFS_CHECKED;
					SetMenuItemInfo(hSubMenu,IDM_WIND,FALSE,&mii);
				}else if(windTop==1){

					/////////////////////////////////////////////////////////////////////////////////////////////////
					//	最前面表示の解除
					/////////////////////////////////////////////////////////////////////////////////////////////////

					SetWindowPos( hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, (SWP_SHOWWINDOW|SWP_NOMOVE|SWP_NOSIZE));
					windTop = 0;
					wsprintf(strss , TEXT("%s=%d\0") , INI_VALUENAME , windTop);

					WritePrivateProfileSection(INT_SECNAME , strss , INI_FILE);
					GetMenuItemInfo(hSubMenu,IDM_WIND,FALSE,&mii);
					mii.fState = MFS_UNCHECKED;
					SetMenuItemInfo(hSubMenu,IDM_WIND,FALSE,&mii);
				}
				return 0;
			case IDM_SET:
				//////////////////////////////////////////////////////////////////////////////////////////////////////////////
				//		Path
				//////////////////////////////////////////////////////////////////////////////////////////////////////////////

				GetModuleFileName(NULL, szPath, sizeof(szPath));

				SHGetSpecialFolderPath(hWnd,desktopPath,CSIDL_STARTUP,FALSE);
				strcpy(linkPath,desktopPath);
				strcat(linkPath,linkName);

				if(setShort==1){
					setShort = 0;
					GetMenuItemInfo(hSubMenu,IDM_SET,FALSE,&mii);
					mii.fState = MFS_UNCHECKED;
					SetMenuItemInfo(hSubMenu,IDM_SET,FALSE,&mii);
					int result;

					result = remove(linkPath);
					if (result != 0)
					{
						word = 1;
						strcpy(textOut1,"削除に失敗しました。元々ショートカットがなかったかもしれません、とミサカは仮説を立てます。");
					}
				}else if(setShort==0){
					setShort = 1;
					GetMenuItemInfo(hSubMenu,IDM_SET,FALSE,&mii);
					mii.fState = MFS_CHECKED;
					SetMenuItemInfo(hSubMenu,IDM_SET,FALSE,&mii);

					//ショートカット作成
					if( !CreateShortCut(linkPath,szPath, NULL, NULL, NULL ) ) return 1;
				}

				wsprintf(strsv , TEXT("%s=%d\0") , INI_SETSHORT , setShort);
				WritePrivateProfileSection(INT_SECNAME5 , strsv , INI_FILE);
				return 0;
			case IDM_HOGE:
				if(setWatch==1){
					setWatch=0;
					GetMenuItemInfo(hSubMenu,IDM_HOGE,FALSE,&mii);
					mii.fState = MFS_UNCHECKED;
					SetMenuItemInfo(hSubMenu,IDM_HOGE,FALSE,&mii);
					wsprintf(strsw , TEXT("%s=%d\0") , INI_WATCH , setWatch);
					WritePrivateProfileSection(INT_SECNAME6 , strsw , INI_FILE);
					InvalidateRect(hWnd,NULL,TRUE);
				}else if(setWatch==0){
					setWatch=1;
					GetMenuItemInfo(hSubMenu,IDM_HOGE,FALSE,&mii);
					mii.fState = MFS_CHECKED;
					SetMenuItemInfo(hSubMenu,IDM_HOGE,FALSE,&mii);
					wsprintf(strsw , TEXT("%s=%d\0") , INI_WATCH , setWatch);
					WritePrivateProfileSection(INT_SECNAME6 , strsw , INI_FILE);
					InvalidateRect(hWnd,NULL,TRUE);
				}
				return 0;
			case IDM_SIRIAL:
				char test[0xFF];
				wsprintf(test , "ミサカのシリアルナンバーは%d号です、とミサカは懇切丁寧に説明しました。" , sirialNomber[1]);
				word = 1;
				strcpy(textOut1,test);

				mciSendCommand(sirialmop.wDeviceID,MCI_SEEK,MCI_SEEK_TO_START,0);
				mciSendCommand(sirialmop.wDeviceID,MCI_PLAY,0,0);
				return 0;
			case IDM_RSSEDIT:
				CloseTimer(hWnd);
				showPic = 1;
				ShowRSSEditter(hWnd);
				return 0;
			case IDM_RSS1:
				if(strcmp(url1,"")==0){
					word=1;
					strcpy(textOut1,"RSSが未記入なのでリンクへアクセスできません、とミサカは報告します。");
				}else{
					ShellExecute(NULL,"open",url1,NULL,NULL,SW_SHOWNORMAL);
				}
				return 0;
			case IDM_RSS2:
				if(strcmp(url2,"")==0){
					word=1;
					strcpy(textOut1,"RSSが未記入なのでリンクへアクセスできません、とミサカは報告します。");
				}else{
					ShellExecute(NULL,"open",url2,NULL,NULL,SW_SHOWNORMAL);
				}
				return 0;
			case IDM_RSS3:
				if(strcmp(url3,"")==0){
					word=1;
					strcpy(textOut1,"RSSが未記入なのでリンクへアクセスできません、とミサカは報告します。");
				}else{
					ShellExecute(NULL,"open",url3,NULL,NULL,SW_SHOWNORMAL);
				}
				return 0;
			case IDM_SETTIMER1:
				CloseRSSEditter(hWnd);
				showPic = 1;
				ShowTimer(hWnd);
				return 0;
			case IDM_UPDATE:
				UpdateCheck();
				return 0;
			case ID_BTN1:
				GetWindowText(edit[0],str,(int)sizeof(str));
				GetWindowText(edit[1],str2,(int)sizeof(str2));
				GetWindowText(edit[2],str3,(int)sizeof(str3));
				strcpy(url1,str);
				strcpy(url2,str2);
				strcpy(url3,str3);
				CloseRSSEditter(hWnd);
				WritePrivateProfileString(INT_RSSSET1 ,INI_RSS1, url1 , INI_FILE);
				WritePrivateProfileString(INT_RSSSET2 ,INI_RSS2, url2 , INI_FILE);
				WritePrivateProfileString(INT_RSSSET3 ,INI_RSS3, url3 , INI_FILE);
				return 0;
			case ID_BTN2:
				CloseRSSEditter(hWnd);
				return 0;
			case ID_BTN3:
				GetWindowText(edit[3],timer1,(int)sizeof(str));
				GetWindowText(edit[4],timer2,(int)sizeof(str2));
				GetWindowText(edit[5],timer3,(int)sizeof(str3));
				if(strcmp(timer1,"0")==0 || strcmp(timer1,"1")==0 || strcmp(timer1,"2")==0 || strcmp(timer1,"3")==0 || strcmp(timer1,"4")==0 ||	strcmp(timer1,"5")==0 || strcmp(timer1,"6")==0 || strcmp(timer1,"7")==0 || strcmp(timer1,"8")==0 || strcmp(timer1,"9")==0){
					strcpy(timerAll,"0");
					strcat(timerAll,timer1);
				}else{
					strcpy(timerAll,timer1);
				}

				strcat(timerAll,":");

				if(strcmp(timer2,"0")==0 || strcmp(timer2,"1")==0 || strcmp(timer2,"2")==0 || strcmp(timer2,"3")==0 || strcmp(timer2,"4")==0 ||	strcmp(timer2,"5")==0 || strcmp(timer2,"6")==0 || strcmp(timer2,"7")==0 || strcmp(timer2,"8")==0 || strcmp(timer2,"9")==0){
					strcat(timerAll,"0");
					strcat(timerAll,timer2);
				}else{
					strcat(timerAll,timer2);
				}

				strcat(timerAll,":");

				if(strcmp(timer3,"0")==0 || strcmp(timer3,"1")==0 || strcmp(timer3,"2")==0 || strcmp(timer3,"3")==0 || strcmp(timer3,"4")==0 ||	strcmp(timer3,"5")==0 || strcmp(timer3,"6")==0 || strcmp(timer3,"7")==0 || strcmp(timer3,"8")==0 || strcmp(timer3,"9")==0){
					strcat(timerAll,"0");
					strcat(timerAll,timer3);
				}else{
					strcat(timerAll,timer3);
				}

				CloseTimer(hWnd);
				return 0;
			case ID_BTN4:
				CloseTimer(hWnd);
				return 0;
			case IDM_END:
				while(TRUE){
					//////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//	音声
					//////////////////////////////////////////////////////////////////////////////////////////////////////////////

					mciStatus.dwCallback=NULL;
					mciStatus.dwItem=MCI_STATUS_MODE;

					mciSendCommand(endmop.wDeviceID,MCI_STATUS,MCI_STATUS_ITEM|MCI_WAIT,(DWORD)&mciStatus);

					if(mciStatus.dwReturn==MCI_MODE_STOP){
						if(aa==0){
							mciSendCommand(endmop.wDeviceID,MCI_SEEK,MCI_SEEK_TO_START,0);
							mciSendCommand(endmop.wDeviceID,MCI_PLAY,0,0);
							aa=1;
						}
						else{
							////////////////////////////////////////////////////////////////////////////////////////
							//	座標
							////////////////////////////////////////////////////////////////////////////////////////

							GetWindowRect( hWnd, &winRect );
							windowLeft = winRect.left;
							windowBottom = winRect.top;
							
							////////////////////////////////////////////////////////////////////////////////////////
							//	write
							////////////////////////////////////////////////////////////////////////////////////////
							
							wsprintf(strst , TEXT("%s=%d\0") , INI_WINDOWBOTTOM , windowBottom);
							WritePrivateProfileSection(INT_SECNAME2 , strst , INI_FILE);
							wsprintf(strst , TEXT("%s=%d\0") , INI_WINDOWLEFT , windowLeft);
							WritePrivateProfileSection(INT_SECNAME3 , strst , INI_FILE);
							PostQuitMessage(0);
							break;
						}
					}
				}
				return 0;
			}
		default:
			return DefWindowProc(hWnd,msg,wp,lp);
	}
	return 0;
}
LRESULT CALLBACK WndProc(HWND hWnd,UINT msg,WPARAM wp,LPARAM lp);

int WINAPI WinMain(HINSTANCE hInst,HINSTANCE hPrevInst,LPSTR pCmdLine,int showCmd){


	WNDCLASSEX wc;
	HWND hWnd;
	MSG msg;
	hmyb = CreateSolidBrush(RGB(0,0,255));//ブラシ

	wc.cbSize = sizeof(wc);
	wc.style = CS_HREDRAW | CS_VREDRAW;
	wc.lpfnWndProc = WndProc;
	wc.cbClsExtra = 0;
	wc.cbWndExtra = 0;
	wc.hInstance = hInst;
	wc.hIcon = LoadIcon(hInst, "ICON");
	wc.hIconSm = wc.hIcon;
	wc.hCursor = LoadCursor(NULL,IDC_ARROW);
	wc.hbrBackground = hmyb;
	wc.lpszMenuName = NULL;
	wc.lpszClassName = APP_NAME;
		//USER32.DLLからWindows2000で拡張された関数を取得する 
     hDllInst = LoadLibrary("user32.dll"); 
    if( hDllInst == NULL ){ 
        MessageBox(NULL, "USER32.DLLが読み込めませんでした。","Error", MB_OK|MB_ICONSTOP ); 
        return( FALSE ); 
    } 
    SetLayeredWindowAttributes = 
        (SETLAYER *)GetProcAddress( hDllInst, "SetLayeredWindowAttributes" ); 
    if( SetLayeredWindowAttributes == NULL ){ 
        MessageBox( NULL,"SetLayeredWindowAttributes()関数のポインタが取得できませんでした。Windows2000ではない可能性があります。","Error", MB_OK ); 
        return( FALSE ); 
    }
	long lStyle; 

    lStyle = GetWindowLong( hWnd, GWL_EXSTYLE ); 
    lStyle |= 0x00080000; 
    SetWindowLong( hWnd, GWL_EXSTYLE, lStyle );

	if(RegisterClassEx(&wc) == 0){return 1;}

	//WS_OVERLAPPEDWINDOW
	
	hWnd = CreateWindowEx(lStyle ,wc.lpszClassName,APP_NAME,WS_POPUP|WS_VISIBLE,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInst,NULL);
	
	if(hWnd == NULL){return 1;}

	while(GetMessage(&msg,NULL,0,0)){ TranslateMessage(&msg);DispatchMessage(&msg);}
	return msg.wParam;
}
BOOL CreateShortCut( LPSTR pShortCutPath, LPSTR pTargetPath, LPSTR pWorkFolderPath, LPSTR pDescription, LPSTR pArgs )
{
	//COM 初期化
	if( !SUCCEEDED( CoInitialize( NULL ) ) ) return FALSE;

	IShellLink*   p_sl;	//シェルリンクとやらをいじるためのオブジェクト
	IPersistFile* p_pf;	//ファイルをいろいろいじるためのオブジェクト
	HRESULT       hRes;	//戻り値を受け取り用

	//IShellLink オブジェクト生成
	hRes = CoCreateInstance( CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (void **)&p_sl );
	if( SUCCEEDED( hRes ) )
	{		
		//IPersistFile がサポートされてるか調べる
		hRes = p_sl->QueryInterface( IID_IPersistFile, (void **)&p_pf );
		if( SUCCEEDED( hRes ) )
		{
			//ショートカットを作るファイルのパスをセット
			hRes = p_sl->SetPath( pTargetPath );
			if( SUCCEEDED( hRes ) )
			{
				//作成するショートカットの設定
				p_sl->SetDescription( pDescription );
				p_sl->SetArguments( pArgs );
				p_sl->SetWorkingDirectory( pWorkFolderPath );
				p_sl->SetIconLocation( pTargetPath, 0 );
				p_sl->SetShowCmd( SW_NORMAL );

				//ppf->Save() の最初の引数が Unicode しかサポートしてないので
				//lpszShortCutPath を Unicode に変換する
				wchar_t path[MAX_PATH];
				MultiByteToWideChar( CP_ACP, 0, pShortCutPath, -1, path, MAX_PATH );
				hRes = p_pf->Save(path,TRUE);
			}
		}
	}
	
	//使用したオブジェクトを解放
	p_sl->Release();
	p_pf->Release();

	CoUninitialize();	//COM 終了

	return SUCCEEDED( hRes );
}
void GetRootTagName(){

	// COMライブラリの初期化
	::CoInitialize(NULL);

	//　ドキュメントのインスタンスを作成
	MSXML2::IXMLDOMDocument2Ptr pDoc;
	pDoc.CreateInstance( __uuidof(MSXML2::DOMDocument40) );
	pDoc->async = VARIANT_FALSE; 

	VARIANT_BOOL hr;

	if(xmlSet==0){
		//	XMLファイルのロード
		hr = pDoc->load(url1);
		if(strcmp(url1,"")==0){
			//strcpy(textOut1,"１番目のRSSが記入されていません、とミサカは報告します。");
		}else if(hr!=VARIANT_TRUE){
			word = 1;
			strcpy(textOut1,"１番目のRSSの読み込みに失敗しました、とミサカは報告します。");
		}else{
			word = 1;
		}
	}else if(xmlSet==1){
		//	XMLファイルのロード
		hr = pDoc->load(url2);
		if(strcmp(url2,"")==0){
			//strcpy(textOut1,"２番目のRSSが記入されていません、とミサカは報告します。");
		}else if(hr!=VARIANT_TRUE){
			word = 1;
			strcpy(textOut1,"２番目のRSSの読み込みに失敗しました、とミサカは報告します。");
		}else{
			word = 1;
		}
	}else if(xmlSet==2){
		hr = pDoc->load(url3);
		if(strcmp(url3,"")==0){
			//strcpy(textOut1,"３番目のRSSが記入されていません、とミサカは報告します。");
		}else if(hr!=VARIANT_TRUE){
			word = 1;
			strcpy(textOut1,"３番目のRSSの読み込みに失敗しました、とミサカは報告します。");
		}else{
			word = 1;
		}
	}else{
		strcpy(textOut1,"RSSメゾッドより不正な値が検出されたので初期化しました、とミサカは報告します。");
		xmlSet=0;
	}

	// タグ名"channel"の全ての要素についてループ
	INodeListPtr plName = pDoc->getElementsByTagName("channel");
	for(int i=0; i<plName->Getlength(); i++){
		
		IElementPtr	peName = plName->Getitem(i);
		
		// タグ名"title"の要素を取得
		IElementPtr	peString	= peName->getElementsByTagName("title")->Getitem(0);
		_variant_t	str	= peString->Gettext();
		
		char getTitle[BUFFER_SIZE];
		WideCharToMultiByte(CP_ACP, 0,str.bstrVal,-1,getTitle ,BUFFER_SIZE, 0, 0);
		strcpy(textOut1,getTitle);

		//最新のタイトル取得
		IElementPtr	peItem	= peName->getElementsByTagName("title")->Getitem(1);
		_variant_t	itm	= peItem->Gettext();

		strcat(textOut1,"　");
		char getTitle2[BUFFER_SIZE];
		WideCharToMultiByte(CP_ACP, 0,itm.bstrVal,-1,getTitle2 ,BUFFER_SIZE, 0, 0);
		strcat(textOut1,getTitle2);

		/*
		// タグ名"link"の要素を取得
		IElementPtr	peComment	= peName->getElementsByTagName("pubDate")->Getitem(1);
		_variant_t	cmt	= peComment->Gettext();

		char getLink[BUFFER_SIZE];
		WideCharToMultiByte(CP_ACP, 0,cmt.bstrVal,-1,getLink ,BUFFER_SIZE, 0, 0);
		strcat(textOut1,getLink);
	*/
	}
	// COMライブラリの終了処理
	//::CoUninitialize();
}
