OSDN Git Service

Enlarge buffers for replies on transferring files.
[ffftp/ffftp.git] / OleDragDrop.c
index 29ee82e..d634f3e 100644 (file)
@@ -1,4 +1,4 @@
-/**************************************************************************\r
+/**************************************************************************\r
 \r
        OleDragDrop.c\r
 \r
@@ -22,7 +22,7 @@
 #include "OleDragDrop.h"\r
 \r
 \r
-/* Clipboard format \82©\82ç Type of storage medium \82ð\8eæ\93¾ */\r
+/* Clipboard format から Type of storage medium を取得 */\r
 static DWORD FormatToTymed(const UINT cfFormat)\r
 {\r
        switch(cfFormat)\r
@@ -78,7 +78,7 @@ typedef struct _IDROPTARGET_INTERNAL{
        IDROPTARGET_NOTIFY dtn;\r
 }IDROPTARGET_INTERNAL , *LPIDROPTARGET_INTERNAL;\r
 \r
-/* OLE\82Ì\83h\83\8d\83b\83v\83^\81[\83Q\83b\83g\82Æ\82µ\82Ä\93o\98^\82·\82é */\r
+/* OLEのドロップターゲットとして登録する */\r
 BOOL APIPRIVATE OLE_IDropTarget_RegisterDragDrop(HWND hWnd, UINT uCallbackMessage, UINT *cFormat, int cfcnt)\r
 {\r
        static IDROPTARGET_INTERNAL *pdti;\r
@@ -89,19 +89,19 @@ BOOL APIPRIVATE OLE_IDropTarget_RegisterDragDrop(HWND hWnd, UINT uCallbackMessag
        }\r
        pdti->lpVtbl = (LPVOID)&dtv;\r
        pdti->m_refCnt = 0;\r
-       pdti->hWnd = hWnd;                                                                                                      /* \83\81\83b\83Z\81[\83W\82ð\8eó\82¯\8eæ\82é\83E\83B\83\93\83h\83E */\r
-       pdti->uCallbackMessage = uCallbackMessage;                                                      /* \83\81\83b\83Z\81[\83W */\r
-       pdti->cFormat = (UINT *)GlobalAlloc(GPTR, sizeof(UINT) * cfcnt);                /* \91Î\89\9e\82µ\82Ä\82¢\82é\83N\83\8a\83b\83v\83{\81[\83h\83t\83H\81[\83}\83b\83g */\r
+       pdti->hWnd = hWnd;                                                                                                      /* メッセージを受け取るウィンドウ */\r
+       pdti->uCallbackMessage = uCallbackMessage;                                                      /* メッセージ */\r
+       pdti->cFormat = (UINT *)GlobalAlloc(GPTR, sizeof(UINT) * cfcnt);                /* 対応しているクリップボードフォーマット */\r
        if(pdti->cFormat == NULL){\r
                GlobalFree(pdti);\r
                return FALSE;\r
        }\r
        CopyMemory(pdti->cFormat, cFormat, sizeof(UINT) * cfcnt);\r
-       pdti->cfcnt = cfcnt;                                                                                            /* \83N\83\8a\83b\83v\83{\81[\83h\83t\83H\81[\83}\83b\83g\82Ì\90\94 */\r
+       pdti->cfcnt = cfcnt;                                                                                            /* クリップボードフォーマットの数 */\r
        return (S_OK == RegisterDragDrop(hWnd, (LPDROPTARGET)pdti));\r
 }\r
 \r
-/* OLE\82Ì\83h\83\8d\83b\83v\83^\81[\83Q\83b\83g\82ð\89ð\8f\9c\82·\82é */\r
+/* OLEのドロップターゲットを解除する */\r
 void APIPRIVATE OLE_IDropTarget_RevokeDragDrop(HWND hWnd)\r
 {\r
        RevokeDragDrop(hWnd);\r
@@ -109,7 +109,7 @@ void APIPRIVATE OLE_IDropTarget_RevokeDragDrop(HWND hWnd)
 \r
 static HRESULT STDMETHODCALLTYPE OLE_IDropTarget_QueryInterface(LPDROPTARGET pThis, REFIID riid, PVOID *ppvObject)\r
 {\r
-       //\97v\8b\81\82³\82ê\82½IID\82Æ\93¯\82\8fê\8d\87\82Í\83I\83u\83W\83F\83N\83g\82ð\95Ô\82·\r
+       //要求されたIIDと同じ場合はオブジェクトを返す\r
        if(IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IDropTarget)){\r
                *ppvObject = (LPVOID)pThis;\r
                ((LPUNKNOWN)*ppvObject)->lpVtbl->AddRef((LPUNKNOWN)*ppvObject);\r
@@ -123,7 +123,7 @@ static ULONG STDMETHODCALLTYPE OLE_IDropTarget_AddRef(LPDROPTARGET pThis)
 {\r
        CONST LPIDROPTARGET_INTERNAL pdti = (LPIDROPTARGET_INTERNAL)pThis;\r
 \r
-       /* reference count\82ð\83C\83\93\83N\83\8a\83\81\83\93\83g\82·\82é */\r
+       /* reference countをインクリメントする */\r
        pdti->m_refCnt++;\r
        return pdti->m_refCnt;\r
 }\r
@@ -132,10 +132,10 @@ static ULONG STDMETHODCALLTYPE OLE_IDropTarget_Release(LPDROPTARGET pThis)
 {\r
        CONST LPIDROPTARGET_INTERNAL pdti = (LPIDROPTARGET_INTERNAL)pThis;\r
 \r
-       /* reference count\82ð\83f\83N\83\8a\83\81\83\93\83g\82·\82é */\r
+       /* reference countをデクリメントする */\r
        pdti->m_refCnt--;\r
 \r
-       /* reference count\82ª 0 \82É\82È\82Á\82½\8fê\8d\87\82Í\83I\83u\83W\83F\83N\83g\82Ì\89ð\95ú\82ð\8ds\82¤ */\r
+       /* reference countが 0 になった場合はオブジェクトの解放を行う */\r
        if(pdti->m_refCnt == 0L){\r
                if(pdti->cFormat != NULL){\r
                        GlobalFree(pdti->cFormat);\r
@@ -175,35 +175,35 @@ static HRESULT APIPRIVATE OLE_IDropTarget_Internal_SendMessage(LPDROPTARGET pThi
        int i;\r
 \r
        if(pdo){\r
-               /* \91Î\89\9e\82µ\82Ä\82¢\82é\83N\83\8a\83b\83v\83{\81[\83h\83t\83H\81[\83}\83b\83g\82ª\82 \82é\82©\92²\82×\82é */\r
+               /* 対応しているクリップボードフォーマットがあるか調べる */\r
                for(i = 0;i < pdti->cfcnt;i++){\r
                        if(DropTarget_QueryGetData(pdo, pdti->cFormat[i]) == S_OK){\r
                                cfFormat = pdti->cFormat[i];\r
                                break;\r
                        }\r
                }\r
-               /* \83N\83\8a\83b\83v\83{\81[\83h\83t\83H\81[\83}\83b\83g\82©\82ç\83f\81[\83^\82ð\8eæ\93¾\82·\82é */\r
+               /* クリップボードフォーマットからデータを取得する */\r
                if(cfFormat != 0){\r
                        if (DropTarget_GetData(pdo, cfFormat, &sm) != S_OK){\r
                                cfFormat = 0;\r
                        }\r
                }\r
        }\r
-       pdtn->ppt = ppt;                                        /* \83}\83E\83X\83|\83C\83\93\83^\82Ì\88Ê\92u */\r
-       pdtn->grfKeyState = grfKeyState;        /* \83L\81[\81A\83}\83E\83X\83{\83^\83\93\82Ì\8fó\91Ô */\r
-       pdtn->cfFormat = cfFormat;                      /* \83N\83\8a\83b\83v\83{\81[\83h\83t\83H\81[\83}\83b\83g */\r
-       pdtn->hMem = sm.hGlobal;                        /* \8eÀ\83f\81[\83^ */\r
+       pdtn->ppt = ppt;                                        /* マウスポインタの位置 */\r
+       pdtn->grfKeyState = grfKeyState;        /* キー、マウスボタンの状態 */\r
+       pdtn->cfFormat = cfFormat;                      /* クリップボードフォーマット */\r
+       pdtn->hMem = sm.hGlobal;                        /* 実データ */\r
        pdtn->pdo = pdo;                                        /* IDataObject */\r
 \r
-       /* \83E\83B\83\93\83h\83E\82É\83C\83x\83\93\83g\82ð\92Ê\92m\82·\82é */\r
+       /* ウィンドウにイベントを通知する */\r
        SendMessage(pdti->hWnd, pdti->uCallbackMessage, (WPARAM)uNotify, (LPARAM)pdtn);\r
 \r
-       /* \83N\83\8a\83b\83v\83{\81[\83h\8c`\8e®\82Ì\83f\81[\83^\82Ì\89ð\95ú */\r
+       /* クリップボード形式のデータの解放 */\r
        if(cfFormat){\r
                ReleaseStgMedium(&sm);\r
        }\r
 \r
-       /* \8cø\89Ê\82Ì\90Ý\92è */\r
+       /* 効果の設定 */\r
        if(pdwEffect){\r
                *pdwEffect &= pdtn->dwEffect;\r
 \r
@@ -219,7 +219,7 @@ static HRESULT APIPRIVATE DropTarget_GetData(LPDATAOBJECT pdo, UINT cfFormat, LP
 {\r
        FORMATETC fmt;\r
 \r
-       /* IDataObject\82É\83N\83\8a\83b\83v\83{\81[\83h\8c`\8e®\82Ì\83f\81[\83^\82ð\97v\8b\81\82·\82é */\r
+       /* IDataObjectにクリップボード形式のデータを要求する */\r
        fmt.cfFormat = cfFormat;\r
        fmt.ptd = NULL;\r
        fmt.dwAspect = DVASPECT_CONTENT;\r
@@ -232,7 +232,7 @@ static HRESULT APIPRIVATE DropTarget_QueryGetData(LPDATAOBJECT pdo, UINT cfForma
 {\r
        FORMATETC fmt;\r
 \r
-       /* IDataObject\82É\8ew\92è\82Ì\83N\83\8a\83b\83v\83{\81[\83h\83t\83H\81[\83}\83b\83g\82ª\91\8dÝ\82·\82é\82©\96â\82¢\8d\87\82í\82¹\82é */\r
+       /* IDataObjectに指定のクリップボードフォーマットが存在するか問い合わせる */\r
        fmt.cfFormat = cfFormat;\r
        fmt.ptd = NULL;\r
        fmt.dwAspect = DVASPECT_CONTENT;\r
@@ -278,7 +278,7 @@ typedef struct _IENUMFORMATETC_INTERNAL{
 \r
 static HRESULT STDMETHODCALLTYPE OLE_IEnumFORMATETC_QueryInterface(LPENUMFORMATETC lpThis, REFIID riid, LPVOID FAR* lplpvObj)\r
 {\r
-       //\97v\8b\81\82³\82ê\82½IID\82Æ\93¯\82\8fê\8d\87\82Í\83I\83u\83W\83F\83N\83g\82ð\95Ô\82·\r
+       //要求されたIIDと同じ場合はオブジェクトを返す\r
        if(IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IEnumFORMATETC)){\r
                *lplpvObj = (LPVOID) lpThis;\r
                 ((LPUNKNOWN)*lplpvObj)->lpVtbl->AddRef(((LPUNKNOWN)*lplpvObj));\r
@@ -292,9 +292,9 @@ static ULONG STDMETHODCALLTYPE OLE_IEnumFORMATETC_AddRef(LPENUMFORMATETC lpThis)
 {\r
        CONST LPIENUMFORMATETC_INTERNAL pefi = (LPIENUMFORMATETC_INTERNAL)lpThis;\r
 \r
-       /* reference count\82ð\83C\83\93\83N\83\8a\83\81\83\93\83g\82·\82é */\r
+       /* reference countをインクリメントする */\r
        pefi->m_refCnt++;\r
-       /* \90e\83I\83u\83W\83F\83N\83g\82Ìreference count\82ð\89Á\82¦\82é */\r
+       /* 親オブジェクトのreference countを加える */\r
        pefi->m_pUnknownObj->lpVtbl->AddRef(pefi->m_pUnknownObj);\r
        return pefi->m_refCnt;\r
 }\r
@@ -303,12 +303,12 @@ static ULONG STDMETHODCALLTYPE OLE_IEnumFORMATETC_Release(LPENUMFORMATETC lpThis
 {\r
        CONST LPIENUMFORMATETC_INTERNAL pefi = (LPIENUMFORMATETC_INTERNAL)lpThis;\r
 \r
-       /* reference count\82ð\83f\83N\83\8a\83\81\83\93\83g\82·\82é */\r
+       /* reference countをデクリメントする */\r
        pefi->m_refCnt--;\r
-       /* \90e\83I\83u\83W\83F\83N\83g\82Ìreference count\82ð\8c¸\82ç\82· */\r
+       /* 親オブジェクトのreference countを減らす */\r
        pefi->m_pUnknownObj->lpVtbl->Release(pefi->m_pUnknownObj);\r
 \r
-       /* reference count\82ª 0 \82É\82È\82Á\82½\8fê\8d\87\82Í\83I\83u\83W\83F\83N\83g\82Ì\89ð\95ú\82ð\8ds\82¤ */\r
+       /* reference countが 0 になった場合はオブジェクトの解放を行う */\r
        if(pefi->m_refCnt == 0L){\r
                if(pefi->m_formatList != NULL){\r
                        GlobalFree(pefi->m_formatList);\r
@@ -383,7 +383,7 @@ static HRESULT STDMETHODCALLTYPE OLE_IEnumFORMATETC_Clone(LPENUMFORMATETC lpThis
        LPIENUMFORMATETC_INTERNAL lpefi = ((LPIENUMFORMATETC_INTERNAL)lpThis);\r
        UINT i;\r
 \r
-       /* IEnumFORMATETC\82ð\8dì\90¬\82·\82é */\r
+       /* IEnumFORMATETCを作成する */\r
        pNew = GlobalAlloc(GPTR, sizeof(IENUMFORMATETC_INTERNAL));\r
        if(pNew == NULL){\r
                return ResultFromScode(E_OUTOFMEMORY);\r
@@ -395,7 +395,7 @@ static HRESULT STDMETHODCALLTYPE OLE_IEnumFORMATETC_Clone(LPENUMFORMATETC lpThis
        pNew->m_pUnknownObj = lpefi->m_pUnknownObj;\r
        pNew->m_numFormats = lpefi->m_numFormats;\r
 \r
-       /* \83N\83\8a\83b\83v\83{\81[\83h\83t\83H\81[\83}\83b\83g\82Ì\83\8a\83X\83g\82ð\83R\83s\81[\82·\82é */\r
+       /* クリップボードフォーマットのリストをコピーする */\r
        pNew->m_formatList = GlobalAlloc(GPTR, sizeof(FORMATETC) * pNew->m_numFormats);\r
        if(pNew->m_formatList != NULL){\r
                for(i = 0;i < pNew->m_numFormats;i++){\r
@@ -461,7 +461,7 @@ typedef struct _IDATAOBJECT_INTERNAL{
 \r
 static HRESULT STDMETHODCALLTYPE OLE_IDataObject_QueryInterface(LPDATAOBJECT lpThis, REFIID riid, LPVOID FAR *lplpvObj)\r
 {\r
-       //\97v\8b\81\82³\82ê\82½IID\82Æ\93¯\82\8fê\8d\87\82Í\83I\83u\83W\83F\83N\83g\82ð\95Ô\82·\r
+       //要求されたIIDと同じ場合はオブジェクトを返す\r
        if(IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IDataObject)){\r
                *lplpvObj = lpThis;\r
                 ((LPUNKNOWN)*lplpvObj)->lpVtbl->AddRef(((LPUNKNOWN)*lplpvObj));\r
@@ -475,7 +475,7 @@ static ULONG STDMETHODCALLTYPE OLE_IDataObject_AddRef(LPDATAOBJECT lpThis)
 {\r
        CONST LPIDATAOBJECT_INTERNAL pdoi = (LPIDATAOBJECT_INTERNAL)lpThis;\r
 \r
-       /* reference count\82ð\83C\83\93\83N\83\8a\83\81\83\93\83g\82·\82é */\r
+       /* reference countをインクリメントする */\r
        pdoi->m_refCnt++;\r
        return pdoi->m_refCnt;\r
 }\r
@@ -484,10 +484,10 @@ static ULONG STDMETHODCALLTYPE OLE_IDataObject_Release(LPDATAOBJECT lpThis)
 {\r
        CONST LPIDATAOBJECT_INTERNAL pdoi = (LPIDATAOBJECT_INTERNAL)lpThis;\r
 \r
-       /* reference count\82ð\83f\83N\83\8a\83\81\83\93\83g\82·\82é */\r
+       /* reference countをデクリメントする */\r
        pdoi->m_refCnt--;\r
 \r
-       /* reference count\82ª 0 \82É\82È\82Á\82½\8fê\8d\87\82Í\83I\83u\83W\83F\83N\83g\82Ì\89ð\95ú\82ð\8ds\82¤ */\r
+       /* reference countが 0 になった場合はオブジェクトの解放を行う */\r
        if(pdoi->m_refCnt == 0L){\r
                if(pdoi->m_typeList != NULL){\r
                        GlobalFree(pdoi->m_typeList);\r
@@ -504,24 +504,24 @@ static HRESULT STDMETHODCALLTYPE OLE_IDataObject_GetData(LPDATAOBJECT lpThis, FO
        HGLOBAL hMem;\r
        UINT i;\r
 \r
-       /* \97v\8b\81\82³\82ê\82½\83N\83\8a\83b\83v\83{\81[\83h\83t\83H\81[\83}\83b\83g\82ª\91\8dÝ\82·\82é\82©\92²\82×\82é */\r
+       /* 要求されたクリップボードフォーマットが存在するか調べる */\r
        for(i = 0;i < pdoi->m_numTypes;i++){\r
                if(pdoi->m_typeList[i].cfFormat == pFormatetc->cfFormat){\r
                        break;\r
                }\r
        }\r
        if(i == pdoi->m_numTypes){\r
-               /* \97v\8b\81\82³\82ê\82½\83N\83\8a\83b\83v\83{\81[\83h\83t\83H\81[\83}\83b\83g\82ð\83T\83|\81[\83g\82µ\82Ä\82È\82¢\8fê\8d\87 */\r
+               /* 要求されたクリップボードフォーマットをサポートしてない場合 */\r
                return ResultFromScode(DV_E_FORMATETC);\r
        }\r
 \r
-       // \83}\83E\83X\82Ì\83h\83\89\83b\83O\92\86\82Í WM_GETDATA \82ð\91\97\82ç\82È\82¢\82æ\82¤\82É\82·\82é\81B(2007.9.3 yutaka)\r
+       // マウスのドラッグ中は WM_GETDATA を送らないようにする。(2007.9.3 yutaka)\r
        if (GetAsyncKeyState(VK_LBUTTON) & 0x8000 ||\r
                GetAsyncKeyState(VK_RBUTTON) & 0x8000) {\r
                return ResultFromScode(DV_E_FORMATETC);\r
        }\r
 \r
-       /* \83E\83B\83\93\83h\83E\82É\83f\81[\83^\82Ì\97v\8b\81\82ð\8ds\82¤ */\r
+       /* ウィンドウにデータの要求を行う */\r
        SendMessage(pdoi->hWnd, pdoi->uCallbackMessage, (WPARAM)pdoi->m_typeList[i].cfFormat, (LPARAM)&hMem);\r
        if(hMem == NULL){\r
                return ResultFromScode(STG_E_MEDIUMFULL);\r
@@ -542,7 +542,7 @@ static HRESULT STDMETHODCALLTYPE OLE_IDataObject_QueryGetData(LPDATAOBJECT lpThi
        CONST LPIDATAOBJECT_INTERNAL pdoi = (LPIDATAOBJECT_INTERNAL)lpThis;\r
        UINT i;\r
 \r
-       /* \97v\8b\81\82³\82ê\82½\83N\83\8a\83b\83v\83{\81[\83h\83t\83H\81[\83}\83b\83g\82ª\91\8dÝ\82·\82é\82©\92²\82×\82é */\r
+       /* 要求されたクリップボードフォーマットが存在するか調べる */\r
        for(i = 0;i < pdoi->m_numTypes;i++){\r
                if(pdoi->m_typeList[i].cfFormat == pFormatetc->cfFormat){\r
                        return S_OK;\r
@@ -576,7 +576,7 @@ static HRESULT STDMETHODCALLTYPE OLE_IDataObject_EnumFormatEtc(LPDATAOBJECT lpTh
                return ResultFromScode(E_NOTIMPL);\r
        }\r
 \r
-       /* IEnumFORMATETC\82ð\8dì\90¬\82·\82é */\r
+       /* IEnumFORMATETCを作成する */\r
        pefi = GlobalAlloc(GPTR, sizeof(IENUMFORMATETC_INTERNAL));\r
        if(pefi == NULL){\r
                return E_OUTOFMEMORY;\r
@@ -587,7 +587,7 @@ static HRESULT STDMETHODCALLTYPE OLE_IDataObject_EnumFormatEtc(LPDATAOBJECT lpTh
        pefi->m_pUnknownObj = (struct IUnknown *)lpThis;\r
        pefi->m_numFormats = pdoi->m_numTypes;\r
 \r
-       /* \83N\83\8a\83b\83v\83{\81[\83h\83t\83H\81[\83}\83b\83g\82Ì\83\8a\83X\83g\82ð\83R\83s\81[\82·\82é */\r
+       /* クリップボードフォーマットのリストをコピーする */\r
        pefi->m_formatList = GlobalAlloc(GPTR, sizeof(FORMATETC) * pefi->m_numFormats);\r
        if(pefi->m_formatList != NULL){\r
                for(i = 0;i < pefi->m_numFormats;i++){\r
@@ -652,7 +652,7 @@ typedef struct _IDROPSOURCE_INTERNAL{
 \r
 static HRESULT STDMETHODCALLTYPE OLE_IDropSource_QueryInterface(LPDROPSOURCE lpThis, REFIID riid, LPVOID FAR *lplpvObj)\r
 {\r
-       //\97v\8b\81\82³\82ê\82½IID\82Æ\93¯\82\8fê\8d\87\82Í\83I\83u\83W\83F\83N\83g\82ð\95Ô\82·\r
+       //要求されたIIDと同じ場合はオブジェクトを返す\r
        if(IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IDropSource)){\r
                *lplpvObj = (LPVOID) lpThis;\r
                ((LPUNKNOWN)*lplpvObj)->lpVtbl->AddRef(((LPUNKNOWN)*lplpvObj));\r
@@ -667,7 +667,7 @@ static ULONG STDMETHODCALLTYPE OLE_IDropSource_AddRef(LPDROPSOURCE lpThis)
 {\r
        CONST LPIDROPSOURCE_INTERNAL pdsi = (LPIDROPSOURCE_INTERNAL)lpThis;\r
 \r
-       /* reference count\82ð\83C\83\93\83N\83\8a\83\81\83\93\83g\82·\82é */\r
+       /* reference countをインクリメントする */\r
        pdsi->m_refCnt++;\r
        return pdsi->m_refCnt;\r
 }\r
@@ -676,10 +676,10 @@ static ULONG STDMETHODCALLTYPE OLE_IDropSource_Release(LPDROPSOURCE lpThis)
 {\r
        CONST LPIDROPSOURCE_INTERNAL pdsi = (LPIDROPSOURCE_INTERNAL)lpThis;\r
 \r
-       /* reference count\82ð\83f\83N\83\8a\83\81\83\93\83g\82·\82é */\r
+       /* reference countをデクリメントする */\r
        pdsi->m_refCnt--;\r
 \r
-       /* reference count\82ª 0 \82É\82È\82Á\82½\8fê\8d\87\82Í\83I\83u\83W\83F\83N\83g\82Ì\89ð\95ú\82ð\8ds\82¤ */\r
+       /* reference countが 0 になった場合はオブジェクトの解放を行う */\r
        if(pdsi->m_refCnt == 0L){\r
                GlobalFree(pdsi);\r
                return 0L;\r
@@ -692,14 +692,14 @@ static HRESULT STDMETHODCALLTYPE OLE_IDropSource_QueryContinueDrag(LPDROPSOURCE
        CONST LPIDROPSOURCE_INTERNAL pdsi = (LPIDROPSOURCE_INTERNAL)lpThis;\r
 \r
        if(fEscapePressed){\r
-               /* \83G\83X\83P\81[\83v\82ª\89\9f\82³\82ê\82½\8fê\8d\87\82Í\83L\83\83\83\93\83Z\83\8b\82É\82·\82é */\r
+               /* エスケープが押された場合はキャンセルにする */\r
                return ResultFromScode(DRAGDROP_S_CANCEL);\r
        }\r
 \r
-       // Mouse over\82Ì\92Ê\92m (yutaka)\r
+       // Mouse overの通知 (yutaka)\r
        SendMessage(pdsi->m_hWnd, pdsi->m_uCallbackDragOverMessage, 0, 0);\r
 \r
-       /* \8ew\92è\82Ì\83L\81[\82â\83}\83E\83X\82ª\97£\82³\82ê\82½\8fê\8d\87\82Í\83h\83\8d\83b\83v\82É\82·\82é */\r
+       /* 指定のキーやマウスが離された場合はドロップにする */\r
        if(pdsi->m_button == 0){\r
                if(grfKeyState != pdsi->m_keyState){\r
                        return ResultFromScode(DRAGDROP_S_DROP);\r
@@ -717,7 +717,7 @@ static HRESULT STDMETHODCALLTYPE OLE_IDropSource_GiveFeedback(LPDROPSOURCE lpThi
        return ResultFromScode(DRAGDROP_S_USEDEFAULTCURSORS);\r
 }\r
 \r
-/* \83h\83\89\83b\83O\81\95\83h\83\8d\83b\83v\82Ì\8aJ\8en */\r
+/* ドラッグ&ドロップの開始 */\r
 int APIPRIVATE OLE_IDropSource_Start(HWND hWnd, UINT uCallbackMessage, UINT uCallbackDragOverMessage, UINT *ClipFormtList, int cfcnt, int Effect)\r
 {\r
        static IDATAOBJECT_INTERNAL *pdoi;\r
@@ -727,7 +727,7 @@ int APIPRIVATE OLE_IDropSource_Start(HWND hWnd, UINT uCallbackMessage, UINT uCal
        int i;\r
        int ret;\r
 \r
-       /* IDataObject\82Ì\8dì\90¬ */\r
+       /* IDataObjectの作成 */\r
        pdoi = GlobalAlloc(GPTR, sizeof(IDATAOBJECT_INTERNAL));\r
        if(pdoi == NULL){\r
                return -1;\r
@@ -736,7 +736,7 @@ int APIPRIVATE OLE_IDropSource_Start(HWND hWnd, UINT uCallbackMessage, UINT uCal
        pdoi->m_refCnt = 0;\r
        pdoi->m_numTypes = cfcnt;\r
        pdoi->m_maxTypes = cfcnt;\r
-       /* \97L\8cø\82È\83N\83\8a\83b\83v\83{\81[\83h\83t\83H\81[\83}\83b\83g\82ð\90Ý\92è\82·\82é */\r
+       /* 有効なクリップボードフォーマットを設定する */\r
        pdoi->m_typeList = GlobalAlloc(GPTR, sizeof(FORMATETC) * cfcnt);\r
        if(pdoi->m_typeList == NULL){\r
                GlobalFree(pdoi);\r
@@ -753,10 +753,10 @@ int APIPRIVATE OLE_IDropSource_Start(HWND hWnd, UINT uCallbackMessage, UINT uCal
        pdoi->uCallbackMessage = uCallbackMessage;\r
        ((LPDATAOBJECT)pdoi)->lpVtbl->AddRef((LPDATAOBJECT)pdoi);\r
 \r
-       /* IDropSource\82Ì\8dì\90¬ */\r
+       /* IDropSourceの作成 */\r
        pdsi = GlobalAlloc(GPTR, sizeof(IDROPSOURCE_INTERNAL));\r
        if(pdsi == NULL){\r
-               /* IDataObject\82ð\89ð\95ú\82·\82é */\r
+               /* IDataObjectを解放する */\r
                ((LPDATAOBJECT)pdoi)->lpVtbl->Release((LPDATAOBJECT)pdoi);\r
                return -1;\r
        }\r
@@ -765,14 +765,14 @@ int APIPRIVATE OLE_IDropSource_Start(HWND hWnd, UINT uCallbackMessage, UINT uCal
        pdsi->m_hWnd = hWnd; // yutaka\r
        pdsi->m_uCallbackDragOverMessage = uCallbackDragOverMessage;\r
 \r
-       /* \97L\8cø\82È\83L\81[\82Æ\83}\83E\83X\82Ì\8fó\91Ô */\r
+       /* 有効なキーとマウスの状態 */\r
        if(GetKeyState(VK_RBUTTON) & 0x8000){\r
                pdsi->m_button = MK_RBUTTON;\r
        }else{\r
                pdsi->m_button = MK_LBUTTON;\r
        }\r
 \r
-       /* \8c»\8dÝ\82Ì\83L\81[\82Æ\83}\83E\83X\82Ì\8fó\91Ô */\r
+       /* 現在のキーとマウスの状態 */\r
        keyState = 0;\r
        if(GetKeyState(VK_SHIFT) & 0x8000){\r
                keyState |= MK_SHIFT;\r
@@ -797,16 +797,16 @@ int APIPRIVATE OLE_IDropSource_Start(HWND hWnd, UINT uCallbackMessage, UINT uCal
 \r
        lpdwEffect = 0;\r
 \r
-       /* \83h\83\89\83b\83O&\83h\83\8d\83b\83v\82Ì\8aJ\8en */\r
+       /* ドラッグ&ドロップの開始 */\r
        ret = DoDragDrop((LPDATAOBJECT)pdoi, (LPDROPSOURCE)pdsi, Effect, &lpdwEffect);\r
 \r
-       /* IDataObject\82ð\89ð\95ú\82·\82é */\r
+       /* IDataObjectを解放する */\r
        ((LPDATAOBJECT)pdoi)->lpVtbl->Release((LPDATAOBJECT)pdoi);\r
-       /* IDropSource\82ð\89ð\95ú\82·\82é */\r
+       /* IDropSourceを解放する */\r
        ((LPDROPSOURCE)pdsi)->lpVtbl->Release((LPDROPSOURCE)pdsi);\r
 \r
        if(ret == DRAGDROP_S_DROP){\r
-               /* \83h\83\8d\83b\83v\90æ\82Ì\83A\83v\83\8a\83P\81[\83V\83\87\83\93\82ª\90Ý\92è\82µ\82½\8cø\89Ê\82ð\95Ô\82· */\r
+               /* ドロップ先のアプリケーションが設定した効果を返す */\r
                return lpdwEffect;\r
        }\r
        return -1;\r