if(windowParam.noclose){
// \95Â\82¶\82é\83{\83^\83\93\82È\82µ\83^\83C\83v
- windowParam.SetWindowClassName("SeraphyScriptToolsOverlappedWindowNC");
+ windowParam.SetWindowClassName(_TEXT("SeraphyScriptToolsOverlappedWindowNC"));
windowParam.wndstyle = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS | CS_NOCLOSE;
}
else{
- windowParam.SetWindowClassName("SeraphyScriptToolsOverlappedWindow");
+ windowParam.SetWindowClassName(_TEXT("SeraphyScriptToolsOverlappedWindow"));
windowParam.wndstyle = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
}
HWND hWnd = CreateWindowEx(
WS_EX_CONTROLPARENT,
windowParam.szClassName,
- "", // \83_\83~\81[
+ _TEXT(""), // \83_\83~\81[
windowParam.GetStyle(),
CW_USEDEFAULT,
CW_USEDEFAULT,
windowParam.height,
m_hParentWnd,
NULL, _Module.m_hInst, this);
- ::SetWindowLong(hWnd,GWL_USERDATA,(LONG)this); // \83N\83\89\83X\82Æ\8aÖ\98A\95t\82¯\82é
+ ::SetWindowLongPtr(hWnd, GWLP_USERDATA, (LONG_PTR) this); // \83N\83\89\83X\82Æ\8aÖ\98A\95t\82¯\82é
m_hPopupWnd = hWnd;
// \83E\83B\83\93\83h\83E\83X\83^\83C\83\8b\82Ì\8dÄ\90Ý\92è
::SetWindowLong(m_hPopupWnd,GWL_STYLE,windowParam.GetStyle());
minfo.fMask = MIIM_TYPE|MIIM_ID;
minfo.fType = MFT_STRING;
minfo.wID = WM_MOVENEXT_OVERLAPPED;
- minfo.dwTypeData = "\8e\9f\82Ì\83E\83B\83\93\83h\83E\82É\88Ú\93®\tF6";
+ minfo.dwTypeData = _TEXT("\8e\9f\82Ì\83E\83B\83\93\83h\83E\82É\88Ú\93®\tF6"); //FIXME: \83\8a\83\\81[\83X\82É\88Ú\93®\82·\82é
::InsertMenuItem(hMenu,cnt,true,&minfo);
// \83t\83H\81[\83\80\82Ì\83\81\83C\83\93\83E\83B\83\93\83h\83E\97p\82Æ\82µ\82Ä\83A\83^\83b\83`\82·\82é
LRESULT CALLBACK COverlappedWindow::WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
- COverlappedWindow* me = (COverlappedWindow*)::GetWindowLong(hWnd,GWL_USERDATA);
+ COverlappedWindow* me = (COverlappedWindow*)::GetWindowLongPtr(hWnd, GWLP_USERDATA);
// \8bÙ\8b}\92â\8e~\82Ì\94»\92è
if(GetAsyncKeyState(VK_PAUSE) & 0x8000){
{
#ifdef _DEBUG
TCHAR mes[MAX_PATH];
- wsprintf(mes,"command=%d:%d\n",HIWORD(wParam),LOWORD(wParam));
+ wsprintf(mes, _TEXT("command=%d:%d\n"), HIWORD(wParam), LOWORD(wParam));
OutputDebugString(mes);
#endif
HWND hControl = (HWND)lParam;
{
// ListView\82Å\83J\83\89\83\80\82ª\83N\83\8a\83b\83N\82³\82ê\82½\82±\82Æ\82ð\92Ê\92m\82·\82é
LPNMLISTVIEW pnmv = (LPNMLISTVIEW) lParam;
- DWORD addr = ::GetWindowLong(pnmv->hdr.hwndFrom,GWL_USERDATA);
- if(addr){
+ LONG_PTR addr = ::GetWindowLongPtr(pnmv->hdr.hwndFrom, GWLP_USERDATA);
+ if (addr) {
// \83J\83\89\83\80\83N\83\8a\83b\83N\82É\82æ\82é\83\\81[\83e\83B\83\93\83O\82ð\8ds\82¤
CComObject<CControl>* pCtrl = (CComObject<CControl>*)addr;
pCtrl->ListSort(pnmv->iSubItem);
{
// ListView - TreeView \82Å\89E\83N\83\8a\83b\83N\82³\82ê\82½\82±\82Æ\82ð\92Ê\92m\82·\82é
LPNMHDR lpnmh = (LPNMHDR) lParam;
- DWORD addr = ::GetWindowLong(lpnmh->hwndFrom,GWL_USERDATA);
- if(addr){
+ LONG_PTR addr = ::GetWindowLong(lpnmh->hwndFrom, GWLP_USERDATA);
+ if (addr) {
CComObject<CControl>* pCtrl = (CComObject<CControl>*)addr;
pCtrl->OnRClick(); // \83R\83\93\83g\83\8d\81[\83\8b\82É\89E\83N\83\8a\83b\83N\82ð\92Ê\92m\82µ\91O\8f\88\97\9d\82ð\8ds\82í\82¹\82é
}
}
}
// \83\81\83j\83\85\81[\82Ì\8c\9f\8dõ
- if(m_hMenu && nID >= 100){
- map<int,_bstr_t>::iterator p;
- p = m_cMenuMap.find(nID);
- if(p != m_cMenuMap.end()){
+ if (m_hMenu && nID >= 100) {
+ map<int, CComBSTR>::iterator p = m_cMenuMap.find(nID);
+ if (p != m_cMenuMap.end()) {
// \94\8c©\82³\82ê\82½
ClassObjectInvoke(p->second);
}
HRESULT hRet = S_OK;
CComVariant tmp;
if(tmp.ChangeType(VT_BSTR,&fmt) == S_OK){
- UINT len = SysStringByteLen(tmp.bstrVal)+1;
- LPSTR pBuf = new CHAR[len];
- int cnt = WideCharToMultiByte(GetACP(),0,tmp.bstrVal,-1,pBuf,len,NULL,NULL);
- pBuf[cnt - 1] = 0;
+ ATL::CString buf(tmp.bstrVal);
+
// \8cÃ\82¢\83\81\83j\83\85\81[\82ð\94j\8aü\82·\82é
- if(m_hMenu){
+ if (m_hMenu) {
m_cMenuMap.clear();
::SetMenu(m_hPopupWnd,NULL);
DestroyMenu(m_hMenu);
m_hMenu = NULL;
}
- if(cnt > 1){
+
+ if (buf.GetLength() > 0) {
// \8d\80\96Ú\82ª\82 \82ê\82Î\83\81\83j\83\85\81[\96¼\82ð\83p\81[\83X\82·\82é
m_hMenu = CreateMenu();
TCHAR menuname[MAX_PATH];
TCHAR szSubmenu[MAX_PATH];
- LPSTR p = pBuf;
+ LPTSTR p = buf.GetBuffer();
HMENU hPopupMenu = NULL;
int lv1 = 0;
int lv2 = 0;
int cmd = 0;
- while(*p){
- while(*p == ' ' || *p == '\t')p++; // \83u\83\89\83\93\83N\83X\83L\83b\83v
- if(*p == '/'){
+ while (*p) {
+ while (*p == ' ' || *p == '\t') p++; // \83u\83\89\83\93\83N\83X\83L\83b\83v
+ if (*p == '/') {
p++;
// \83|\83b\83v\83A\83b\83v\83\81\83j\83\85\81[\82Ì\8dì\90¬
- if(hPopupMenu){
+ if (hPopupMenu) {
// \8aù\91¶\82Ì\83|\83b\83v\83A\83b\83v\82ð\96\84\82ß\8d\9e\82Þ
MENUITEMINFO inf = {0};
inf.cbSize = sizeof(MENUITEMINFO);
lv2 = 0;
cmd = 0;
hPopupMenu = CreatePopupMenu();
- LPSTR d = p;
- while(*p && *p != ',' && *p != '/' && *p != ':'){
+ LPTSTR d = p;
+ while (*p && *p != ',' && *p != '/' && *p != ':') {
p = CharNext(p);
}
- ZeroMemory(szSubmenu,MAX_PATH);
- CopyMemory(szSubmenu,d,p-d);
- if(*p == ',' || *p == ':'){
+ ZeroMemory(szSubmenu, MAX_PATH);
+ CopyMemory(szSubmenu, d, p-d);
+ if (*p == ',' || *p == ':') {
p++;
}
}
else{
// \83\81\83j\83\85\81[\82Ì\8dì\90¬
- if(hPopupMenu){
- LPSTR d = p;
- while(*p && *p != ',' && *p != '/' && *p != ':'){
+ if (hPopupMenu) {
+ LPTSTR d = p;
+ while (*p && *p != ',' && *p != '/' && *p != ':') {
p = CharNext(p);
}
- ZeroMemory(menuname,MAX_PATH);
- CopyMemory(menuname,d,p-d);
+ ZeroMemory(menuname, MAX_PATH);
+ CopyMemory(menuname, d, p-d);
// \83R\83}\83\93\83h\83Z\83p\83\8c\81[\83^\81[\82ð\8c\9f\8d¸\82·\82é
- _bstr_t eventname;
- LPSTR findcmd = strchr(menuname,'@');
+ CComBSTR eventname;
+ LPTSTR findcmd = _tcschr(menuname, _TEXT('@'));
if(findcmd){
*findcmd = 0;
eventname = (LPCSTR)(findcmd + 1);
}
else{
- CHAR tmp[64];
- wsprintf(tmp,"OnMenu%d",lv1*100+cmd);
+ TCHAR tmp[64];
+ wsprintf(tmp, _TEXT("OnMenu%d"), lv1 * 100 + cmd);
eventname = tmp;
}
- m_cMenuMap.insert(pair<int,_bstr_t>(lv1*100+cmd,eventname));
+ m_cMenuMap.insert(std::pair<int, CComBSTR>(lv1 * 100 + cmd, eventname));
// \83\81\83j\83\85\81[\82Ì\8dì\90¬
MENUITEMINFO inf = {0};
inf.cbSize = sizeof(MENUITEMINFO);
}
::SetMenu(m_hPopupWnd,m_hMenu);
}
- delete[]pBuf;
}
return hRet;
}
STDMETHODIMP COverlappedWindow::TrackPopupMenu(VARIANT text, VARIANT cmd,VARIANT* pRet)
{
SafeCreateWnd();
- CComVariant varCmd;
- CComVariant varText;
+
CComVariant varRet;
varRet = 0;
int nCommand = 0;
- if(varCmd.ChangeType(VT_I2,&cmd) == S_OK){
+ CComVariant varCmd;
+ if (varCmd.ChangeType(VT_I2, &cmd) == S_OK){
nCommand = varCmd.iVal;
}
- if(varText.ChangeType(VT_BSTR,&text) == S_OK){
+
+ CComVariant varText;
+ if (varText.ChangeType(VT_BSTR, &text) == S_OK) {
TCHAR menuname[MAX_PATH];
- UINT len = SysStringByteLen(varText.bstrVal)+1;
- LPSTR pBuf = new CHAR[len];
- int cnt = WideCharToMultiByte(GetACP(),0,varText.bstrVal,-1,pBuf,len,NULL,NULL);
- pBuf[cnt - 1] = 0;
- LPSTR p = pBuf;
+
+ ATL::CString buf(varText.bstrVal);
+ UINT len = buf.GetLength() + 1;
+ LPTSTR p = buf.GetBuffer();
+
int lv = 0;
int cmd = 0;
HMENU hPopupMenu = CreatePopupMenu();
- while(*p){
- LPSTR d = p;
- while(*p == ' ' || *p == '\t'){
+ while (*p) {
+ LPTSTR d = p;
+ while (*p == ' ' || *p == '\t') {
p++;
}
- while(*p && *p != ',' && *p != '/' && *p != ':'){
+ while (*p && *p != ',' && *p != '/' && *p != ':') {
p = CharNext(p);
}
- ZeroMemory(menuname,MAX_PATH);
- CopyMemory(menuname,d,p-d);
+ ZeroMemory(menuname, MAX_PATH);
+ CopyMemory(menuname, d, p-d);
MENUITEMINFO inf = {0};
inf.cbSize = sizeof(MENUITEMINFO);
inf.fMask = MIIM_TYPE|MIIM_ID;
inf.fType = MFT_STRING;
- if(nCommand != 0){
- inf.wID = nCommand + cmd;
+ if (nCommand != 0) {
+ inf.wID = nCommand + cmd;
}
- else{
+ else {
// \83R\83}\83\93\83h\83x\81[\83X\82ª0\82È\82ç\82Î\83R\83}\83\93\83h\83C\83x\83\93\83g\82Í\94\90¶\82³\82¹\82È\82¢\81B
// TrackPopupMenu\82Í\83R\83}\83\93\83h\82ð\91I\91ð\82µ\82È\82©\82Á\82½\8fê\8d\87\82Í0\82ð\95Ô\82·\82½\82ß\81A0\82æ\82è\82à\91å\82«\82È\92l\82É\82·\82é\95K\97v\82ª\82 \82é\81B
inf.wID = nCommand + cmd + 1;
}
inf.dwTypeData = menuname;
- InsertMenuItem(hPopupMenu,lv,true,&inf);
+ InsertMenuItem(hPopupMenu, lv, true, &inf);
lv++;
cmd++;
- if(*p == ',' || *p == '/'){
+ if (*p == ',' || *p == '/') {
p++;
}
- else if(*p == ':'){
+ else if (*p == ':') {
inf.fMask = MIIM_TYPE;
inf.fType = MFT_SEPARATOR;
- InsertMenuItem(hPopupMenu,lv,true,&inf);
+ InsertMenuItem(hPopupMenu, lv, true, &inf);
p++;
lv++;
}
}
- delete[]pBuf;
+
// TrackPopupMene
DWORD pos = GetMessagePos();
::SetFocus(m_hPopupWnd);
- varRet = (SHORT)::TrackPopupMenuEx(hPopupMenu
- ,TPM_LEFTALIGN | TPM_TOPALIGN | TPM_RIGHTBUTTON |
- (nCommand==0?(TPM_NONOTIFY|TPM_RETURNCMD):0) // \83R\83}\83\93\83h\83x\81[\83X\82ª0\82Å\82 \82ê\82Î\81A\83R\83}\83\93\83h\83C\83x\83\93\83g\82ð\92Ê\92m\82³\82¹\82È\82¢\81B
- ,LOWORD(pos),HIWORD(pos),m_hPopupWnd,NULL);
+ varRet = (SHORT) ::TrackPopupMenuEx(hPopupMenu,
+ TPM_LEFTALIGN | TPM_TOPALIGN | TPM_RIGHTBUTTON |
+ (nCommand == 0 ? (TPM_NONOTIFY | TPM_RETURNCMD) : 0), // \83R\83}\83\93\83h\83x\81[\83X\82ª0\82Å\82 \82ê\82Î\81A\83R\83}\83\93\83h\83C\83x\83\93\83g\82ð\92Ê\92m\82³\82¹\82È\82¢\81B
+ LOWORD(pos),
+ HIWORD(pos),
+ m_hPopupWnd,
+ NULL);
DestroyMenu(hPopupMenu);
}
varRet.Detach(pRet);
STDMETHODIMP COverlappedWindow::put_Exstyle(long newVal)
{
windowParam.exstyle = (DWORD)newVal;
- if(m_hPopupWnd){
- ::SetWindowLong(m_hPopupWnd,GWL_STYLE,windowParam.exstyle);
+ if (m_hPopupWnd) {
+ ::SetWindowLong(m_hPopupWnd, GWL_STYLE, windowParam.exstyle);
}
return S_OK;
}
STDMETHODIMP COverlappedWindow::get_WindowClassName(BSTR *pVal)
{
- WCHAR wmes[MAX_PATH];
- MultiByteToWideChar(GetACP(),0,windowParam.szClassName,-1,wmes,MAX_PATH);
- *pVal = SysAllocString(wmes);
+ CComBSTR tmp(windowParam.szClassName);
+ *pVal = tmp.Detach();
return S_OK;
}
STDMETHODIMP COverlappedWindow::Refresh()
{
- if(m_hPopupWnd){
- ::SetWindowPos(m_hPopupWnd,NULL,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE|SWP_NOZORDER|SWP_DRAWFRAME|SWP_FRAMECHANGED|SWP_NOCOPYBITS);
+ if (m_hPopupWnd) {
+ ::SetWindowPos(
+ m_hPopupWnd,
+ NULL,
+ 0, 0, 0, 0,
+ SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_DRAWFRAME | SWP_FRAMECHANGED | SWP_NOCOPYBITS);
}
return S_OK;
}
void COverlappedWindow::SetTitle()
{
- if(!m_hPopupWnd){
+ if (!m_hPopupWnd) {
return;
}
- TCHAR szTitle[MAX_PATH] = {0};
- WideCharToMultiByte(GetACP(),0,m_bstrCaption,-1,szTitle,MAX_PATH,NULL,NULL);
- ::SetWindowText(m_hPopupWnd,szTitle);
+ ATL::CString tmp(m_bstrCaption);
+ ::SetWindowText(m_hPopupWnd, tmp);
}
STDMETHODIMP COverlappedWindow::SetPlacement(VARIANT x, VARIANT y, VARIANT w, VARIANT h, VARIANT *pvarUnk)
HWND* hWnds = NULL;
if(m_hParentWnd && bSearchRoot){
// \8dª\8c³\82Å\82È\82¯\82ê\82Î\81A\82³\82ç\82É\96â\82¢\8d\87\82í\82¹\82é
- COverlappedWindow* pParent = (COverlappedWindow*)::GetWindowLong(m_hParentWnd,GWL_USERDATA);
- if(pParent){
+ COverlappedWindow* pParent = (COverlappedWindow*)::GetWindowLongPtr(m_hParentWnd, GWLP_USERDATA);
+ if (pParent) {
pParent->CreateWindowList(lstWnd,true);
}
}
STDMETHODIMP COverlappedWindow::LoadIcon(VARIANT text)
{
- CHAR szPath[MAX_PATH];
CComVariant varText;
- if(varText.ChangeType(VT_BSTR,&text) != S_OK){
+ if (varText.ChangeType(VT_BSTR, &text) != S_OK) {
return DISP_E_TYPEMISMATCH;
}
- WideCharToMultiByte(GetACP(),0,varText.bstrVal,-1,szPath,MAX_PATH,NULL,NULL);
- if(m_hIcon){
+ ATL::CString szPath(varText.bstrVal);
+
+ if (m_hIcon) {
DestroyIcon(m_hIcon);
m_hIcon = NULL;
}
- m_hIcon = (HICON)LoadImage(NULL,szPath,IMAGE_ICON
- ,GetSystemMetrics(SM_CXSMICON)
- ,GetSystemMetrics(SM_CYSMICON),LR_LOADFROMFILE);
- if(m_hIcon && m_hPopupWnd){
+ m_hIcon = (HICON)LoadImage(NULL, szPath, IMAGE_ICON,
+ GetSystemMetrics(SM_CXSMICON),
+ GetSystemMetrics(SM_CYSMICON),
+ LR_LOADFROMFILE);
+
+ if (m_hIcon && m_hPopupWnd) {
::SendMessage(m_hPopupWnd, WM_SETICON, false, (LPARAM)m_hIcon);
}
return S_OK;