|
|
// ShellExtensions.cpp : implementation file
//
#include "stdafx.h"
#include "Ext.h"
#include "Extaw.h"
#include "shextdlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__; #endif
/////////////////////////////////////////////////////////////////////////////
// ShellExtensions dialog
ShellExtensions::ShellExtensions() : CAppWizStepDlg(ShellExtensions::IDD) { //{{AFX_DATA_INIT(ShellExtensions)
m_bContextMenu = FALSE; m_bContextMenu2 = FALSE; m_bContextMenu3 = FALSE; m_bCopyHook = FALSE; m_bDataObject = FALSE; m_bDragAndDrop = FALSE; m_bDropTarget = FALSE; m_bIcon = FALSE; m_bInfoTip = FALSE; m_bPropertySheet = FALSE; //}}AFX_DATA_INIT
}
void ShellExtensions::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(ShellExtensions)
DDX_Control(pDX, IDC_DND, m_btnDragAndDrop); DDX_Control(pDX, IDC_CONTEXTMENU3, m_btnContextMenu3); // DDX_Control(pDX, IDC_CONTEXTMENU2, m_btnContextMenu2);
DDX_Check(pDX, IDC_CONTEXTMENU, m_bContextMenu); // DDX_Check(pDX, IDC_CONTEXTMENU2, m_bContextMenu2);
DDX_Check(pDX, IDC_CONTEXTMENU3, m_bContextMenu3); DDX_Check(pDX, IDC_COPYHOOK, m_bCopyHook); DDX_Check(pDX, IDC_DATAOBJECT, m_bDataObject); DDX_Check(pDX, IDC_DND, m_bDragAndDrop); DDX_Check(pDX, IDC_DROPTARGET, m_bDropTarget); DDX_Check(pDX, IDC_ICONHANDLER, m_bIcon); DDX_Check(pDX, IDC_INFOTIP, m_bInfoTip); DDX_Check(pDX, IDC_PROPERTYSHEET, m_bPropertySheet); //}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(ShellExtensions, CAppWizStepDlg) //{{AFX_MSG_MAP(ShellExtensions)
ON_BN_CLICKED(IDC_CONTEXTMENU, OnContextmenu) //}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// ShellExtensions message handlers
BOOL ShellExtensions::OnDismiss() { UpdateData(TRUE); GUID guidTemp; WCHAR wszGUID[50]; BOOL bSomethingSelected = FALSE;
if (m_bContextMenu) { Extensionsaw.m_Dictionary[TEXT("IContextMenu")] = TEXT("1");
if (m_bContextMenu3) Extensionsaw.m_Dictionary[TEXT("IContextMenu3")] = TEXT("1"); else Extensionsaw.m_Dictionary.RemoveKey(TEXT("IContextMenu3"));
if (m_bDragAndDrop) Extensionsaw.m_Dictionary[TEXT("DragAndDrop")] = TEXT("1"); else Extensionsaw.m_Dictionary.RemoveKey(TEXT("DragAndDrop"));
if (SUCCEEDED(CoCreateGuid(&guidTemp))) { StringFromGUID2(guidTemp, wszGUID, ARRAYSIZE(wszGUID)); Extensionsaw.m_Dictionary[TEXT("ContextMenuGUID")] = StripCurly(wszGUID); }
bSomethingSelected = TRUE; } else { Extensionsaw.m_Dictionary.RemoveKey(TEXT("IContextMenu")); Extensionsaw.m_Dictionary.RemoveKey(TEXT("IContextMenu3")); Extensionsaw.m_Dictionary.RemoveKey(TEXT("DragAndDrop")); Extensionsaw.m_Dictionary.RemoveKey(TEXT("ContextMenuGUID")); }
if (m_bIcon) { Extensionsaw.m_Dictionary[TEXT("Icon")] = TEXT("1"); if (SUCCEEDED(CoCreateGuid(&guidTemp))) { StringFromGUID2(guidTemp, wszGUID, ARRAYSIZE(wszGUID)); Extensionsaw.m_Dictionary[TEXT("IconGUID")] = StripCurly(wszGUID); } bSomethingSelected = TRUE; } else { Extensionsaw.m_Dictionary.RemoveKey(TEXT("Icon")); Extensionsaw.m_Dictionary.RemoveKey(TEXT("IconGUID")); }
if (m_bPropertySheet) { Extensionsaw.m_Dictionary[TEXT("PropertySheet")] = TEXT("1"); if (SUCCEEDED(CoCreateGuid(&guidTemp))) { StringFromGUID2(guidTemp, wszGUID, ARRAYSIZE(wszGUID)); Extensionsaw.m_Dictionary[TEXT("PropertySheetGUID")] = StripCurly(wszGUID); } bSomethingSelected = TRUE; } else { Extensionsaw.m_Dictionary.RemoveKey(TEXT("PropertySheet")); Extensionsaw.m_Dictionary.RemoveKey(TEXT("PropertySheetGUID")); }
if (m_bInfoTip) { Extensionsaw.m_Dictionary[TEXT("InfoTip")] = TEXT("1"); if (SUCCEEDED(CoCreateGuid(&guidTemp))) { StringFromGUID2(guidTemp, wszGUID, ARRAYSIZE(wszGUID)); Extensionsaw.m_Dictionary[TEXT("InfoTipGUID")] = StripCurly(wszGUID); } bSomethingSelected = TRUE; } else { Extensionsaw.m_Dictionary.RemoveKey(TEXT("InfoTip")); Extensionsaw.m_Dictionary.RemoveKey(TEXT("InfoTipGUID")); } #if 0
Extensionsaw.m_Dictionary[TEXT("CopyHook")] = m_bCopyHook? TEXT("TRUE") : TEXT("FALSE"); Extensionsaw.m_Dictionary[TEXT("DataObject")] = m_bDataObject? TEXT("TRUE") : TEXT("FALSE"); Extensionsaw.m_Dictionary[TEXT("DropTarget")] = m_bDropTarget? TEXT("TRUE") : TEXT("FALSE"); Extensionsaw.m_Dictionary[TEXT("InfoTip")] = m_bInfoTip? TEXT("TRUE") : TEXT("FALSE"); #endif
return bSomethingSelected; ; }
void ShellExtensions::OnContextmenu() { UpdateData(TRUE); m_btnContextMenu2.EnableWindow(m_bContextMenu); m_btnContextMenu3.EnableWindow(m_bContextMenu); m_btnDragAndDrop.EnableWindow(m_bContextMenu); }
|