示例#1
0
bool InitDirect3DApp::Init()
{
	if (!cD3DApp::Init())
		return false;

	// Init
	cEffects::InitAll(g_pD3DDevice);
	cRenderStates::InitAll(g_pD3DDevice);
	cInputLayouts::InitAll(g_pD3DDevice);

	// Camera Init
	g_pCameraManager->Init(MainWnd());

	// MeshAdd
	//m_MeshList.push_back(new cBoxMesh());
	//m_MeshList.push_back(new cGridMesh());
	//m_MeshList.push_back(new cCylinder());
	m_MeshList.push_back(new cWave(200, 200, 0.8f, 0.03f, 3.25f, 0.4f, &mTimer));

	// All Mesh Init
	for each(auto item in m_MeshList)
		item->Init();

	return true;
}
示例#2
0
  appSCD_COMENTRYGET(eScdGraphicsCodes, pVal)
    {               
    CDocComInfo DCI;
    DCI.m_DoWhat=CDocComInfo::DCI_GetCount;
    if (/*AfxGet*/MainWnd()->SendMessage(WMU_COM_CMD, ComCmd_DocCmd, (long)&DCI)!=0)
      {
      return Scd.ReturnH(E_FAIL);
      }
    long N=DCI.m_lCount;

    VARIANT* pVar = new VARIANT[N];
    for(int i = 0; i < N; i++)
      {
      DCI.m_DoWhat=CDocComInfo::DCI_GetTitle;
      DCI.m_lIndex=i;
      if (/*AfxGet*/MainWnd()->SendMessage(WMU_COM_CMD, ComCmd_DocCmd, (long)&DCI)!=0)
        {
        return Scd.ReturnH(E_FAIL);
        }
      //CComPtr<IScdGraphic> pGrf;
      //SCD_ROF(pGrf.CoCreateInstance(CLSID_ScdGraphic));
      //SCD_ROF(pGrf->put_Name(_bstr_t(DCI.m_sTitle)));
      //pVar[i].vt = VT_DISPATCH;
      //pVar[i].pdispVal = pGrf;
      //pVar[i].pdispVal->AddRef();

      IScdGraphic * p;
      SCD_ROF(::CoCreateInstance(CLSID_ScdGraphic, NULL, CLSCTX_ALL, IID_IScdGraphic, (void**)&p));
      SCD_ROF(p->put_Name(_bstr_t(DCI.m_sTitle)));
      LPDISPATCH pDisp;
      SCD_TOF(p->QueryInterface(IID_IDispatch, (void**)&pDisp), "IDispatch on ScdGraphic")
        pVar[i].vt = VT_DISPATCH;
      pVar[i].pdispVal = pDisp;
      p->Release();

      }
    // Now make the enum.
    typedef CComObject< CComEnum< IEnumVARIANT, &IID_IEnumVARIANT, VARIANT, _Copy< VARIANT > > > enumVar;
    enumVar* pEnumVar = new enumVar;
    pEnumVar->Init(&pVar[0], &pVar[N], NULL, AtlFlagCopy);
    delete[] pVar;
    // return the enum.
    return pEnumVar->QueryInterface(IID_IUnknown, (void**)pVal);
    }
示例#3
0
 appSCD_COMENTRYGET(eScdGraphicsCodes, pVal)
   {
   CDocComInfo DCI;
   DCI.m_DoWhat=CDocComInfo::DCI_GetCount;
   if (/*AfxGet*/MainWnd()->SendMessage(WMU_COM_CMD, ComCmd_DocCmd, (long)&DCI)!=0)
     {
     return Scd.ReturnH(E_FAIL);
     }
   *pVal=DCI.m_lCount;
   }
示例#4
0
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
    CoInitialize(NULL);
    _Module.Init(NULL, hInstance);

    if(IsAppAlreadyRunning()) {
        dprintf("App is running already, exiting...\n");
        return -1;
    }


    // Create our app window
    CFCWindow MainWnd(hInstance);
    RECT rcPos = { 0, 0, 200, 200 };
    MainWnd.Create(NULL, rcPos, _T("FormSnoop Application Window"));
    MainWnd.SetAppHotKeys(g_uHotKeyRead, g_uHotKeyWrite);
    MainWnd.ShowWindow(SW_HIDE);

    // Win32 message loop

    MSG msg;

    while(GetMessage(&msg, 0, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    // Cleanup code
    MainWnd.RemoveHotKeys(g_uHotKeyRead, g_uHotKeyWrite);
    CleanUp();
    CoUninitialize();

    return 0;
}
/**
 * マクロから呼び出されるエントリポイント。
 * @param [in] text 検索文字列
 * @return 戻り値に意味はない
 */
EXPORT int search(const char *text) {
	if (!IsHidemaruMail()) {
#ifndef _DEBUG
		MessageBox(NULL, "このマクロは秀丸からは起動できません。", NULL, MB_OK);
		return 0;
#endif
	}
	HWND hwnd = reinterpret_cast<HWND>(MainWnd());

	if (hwnd == NULL) {
		MessageBox(NULL, "秀丸メール本体が起動してなければなりません。", NULL, MB_OK);
		return 0;
	}

	if (strlen(text) != 0) {
		std::string oneLine = text;
		size_t pos;
		if ((pos = oneLine.find("\r\n")) != std::string.npos) {
			oneLine[pos] = '\0';
		}
		if (oneLine.find(' ') != std::string.npos) {
			selectedText = "\"";
			selectedText += YenEncode(oneLine.c_str());
			selectedText += "\"";
		} else {
			selectedText = YenEncode(oneLine.c_str());
		}
	}

// SetQuietMode を使用すると、検索結果ウィンドウが手前に来ない
//	SetQuietMode(1);
	int rc = (int)DialogBox(hInst, (LPCTSTR)IDD_HIDEMARUMAILSEARCH_DIALOG, hwnd, (DLGPROC)DialogProc);
//	SetQuietMode(0);

	if (rc == IDOK) {
		const char *account = NULL;
		const char *folder = NULL;

		switch (selectedRadioButton) {
		case IDC_RADIO1:
		case IDC_RADIO2:
			account = (const char *)ExecAtMain("CurrentAccount");
			if (IsHidemaruMailMain() || IsHidemaruMailGrep()) {
				folder = CurrentFolder();
			} else {
				folder = (const char *)ExecAtMain("CurrentFolder");
			}
			break;

		case IDC_RADIO3:
			account = (const char *)ExecAtMain("CurrentAccount");
			if (selectedCheckBox) {
				folder = "";
			} else {
				folder = "受信+送信済み+ユーザー";
			}
			break;

		case IDC_RADIO4:
			account = "";
			if (selectedCheckBox) {
				folder = "";
			} else {
				folder = "受信+送信済み+ユーザー";
			}
			break;
		}

#ifdef _DEBUG
switch (selectedRadioButton) {
case IDC_RADIO1:
case IDC_RADIO2:
case IDC_RADIO3:
	if (account == NULL || strlen(account) == 0) {
		MessageBox(NULL, "秀丸メールにアカウントが見つかりませんでした。\nこのエラーが頻発するようなら作者に連絡してください。", "HidemaruMailSearch", MB_OK);
	}
	break;
}
#endif

		std::string inputText = history[0].c_str();
		std::string query;
		trim(inputText);

		// お気に入りの保存と読み込み
		if (inputText.find("fav:") == 0) {
			size_t pos = inputText.find(' ');
			if (pos != std::string::npos) {
				size_t len = strlen("fav:");
				if (pos != len) {
					std::string favname = inputText.substr(len, pos - len);
					std::string favval = inputText.substr(pos + 1);

					if (favval == "\"\"") {
						iniFile->write("Favorite", favname.c_str(), NULL);
						return 0;
					} else {
						iniFile->write("Favorite", favname.c_str(), favval.c_str());
						return 0;
					}
				}
			} else {
				char *favval = iniFile->read("Favorite", inputText.substr(strlen("fav:")).c_str());
				if (favval != NULL) {
					inputText = favval;
					free(favval);
				}

			}
		}
		if (inputText.compare("help:") == 0) {
			if (helpCmd == "") {
				char *temp;
				char *work = NULL;
				DWORD type;
	
				if ((temp = (char *)get_reg_value(hideinstloc, &type)) == NULL) {
					// 秀丸がインストールされていないなら、メモ帳
					helpCmd = "notepad.exe ";
					work = (char *)get_reg_value(turukamedir, &type);
					helpCmd += "\"";
					helpCmd += work;
					helpCmd += "\\HidemaruMailSearch.txt\"";
				} else {
					helpCmd = "\"";
					helpCmd += temp;
					helpCmd += "\\Hidemaru.exe\" \"";
					helpCmd += "/j";
					helpCmd += HELPFILE_LINE;
					helpCmd += " ";
					if ((work = (char *)get_reg_value(macropath, &type)) == NULL) {
						// マクロパスが存在しなければ秀丸の InstallLocation がホーム
						helpCmd += temp;
					} else {
						helpCmd += work;
					}
					helpCmd += "\\HidemaruMailSearch.txt\"";
				}
				if (temp != NULL) {
					free(temp);
				}
				if (work != NULL) {
					free(work);
				}
			}
			PROCESS_INFORMATION pi;
			STARTUPINFO si;
			memset(&si, 0, sizeof(STARTUPINFO));
			si.cb = sizeof(STARTUPINFO);
			CreateProcess(NULL, (LPSTR)helpCmd.c_str(), NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi);
			return 0;
		} else if (inputText.find("debug:") == 0) {
			query = inputText.substr(strlen("debug:"));
		} else {
			std::string flag;
			
			trim(inputText);
			while (inputText.size() != 0) {
				int tagKind = findTag(inputText);
				if (tagKind == TARGET_SMALLHEADERBODY && inputText.find(colon_targets[TARGET_SMALLHEADERBODY]) != 0) {
					inputText = colon_targets[TARGET_SMALLHEADERBODY] + inputText;
				}
				rc = makeQuery(tagKind, inputText, query, flag);
				trim(inputText);
			}
		
			if (flag.size() != 0) {
				if (query.size() != 0) {
					query += ",";
				}
				query += flag;
			}

			// サブフォルダを検索対称にするかどうか
			if (selectedRadioButton == IDC_RADIO2) {
				query += ",subfolder=1";
			} else {
				query += ",subfolder=0";
			}

			// 常にハイライト
			query += ",hilight=1";
		}

#ifdef _DEBUG
		println("■アカウント");
		println(account);
		println("■フォルダ");
		println(folder);
		println("■検索式");
		println(query);
		println("■入力");
		println(history[0]);
#endif
		if (IsHidemaruMailMain() || IsHidemaruMailGrep()) {
			SetFindPack(query.c_str());
			StartDoGrep(account, folder);
			PushFindPack();
		} else {
			ExecAtMain("SetFindPack", query.c_str());
			ExecAtMain("StartDoGrep", account, folder);
			ExecAtMain("PushFindPack");
		}
	}
	return 0;
}