⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dsaddin.cpp

📁 壓縮及解壓縮的原始碼(Microsoft visual c++)
💻 CPP
字号:
// AddInMod.cpp : implementation file
//

#include "stdafx.h"
#include "ProjectZip6addin.h"
#include "DSAddIn.h"
#include "Commands.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

// This is called when the user first loads the add-in, and on start-up
//  of each subsequent Developer Studio session
STDMETHODIMP CDSAddIn::OnConnection(IApplication* pApp, VARIANT_BOOL bFirstTime,
		long dwCookie, VARIANT_BOOL* OnConnection)
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState());
	
	// Store info passed to us
	IApplication* pApplication = NULL;
	if (FAILED(pApp->QueryInterface(IID_IApplication, (void**) &pApplication))
		|| pApplication == NULL)
	{
		*OnConnection = VARIANT_FALSE;
		return S_OK;
	}

	m_dwCookie = dwCookie;

	// Create command dispatch, send info back to DevStudio
	CCommandsObj::CreateInstance(&m_pCommands);
	m_pCommands->AddRef();

	// The QueryInterface above AddRef'd the Application object.  It will
	//  be Release'd in CCommand's destructor.
	m_pCommands->SetApplicationObject(pApplication);

	// (see stdafx.h for the definition of VERIFY_OK)

	VERIFY_OK(pApplication->SetAddInInfo((long) AfxGetInstanceHandle(),
		(LPDISPATCH) m_pCommands, IDR_TOOLBAR_MEDIUM, IDR_TOOLBAR_LARGE, m_dwCookie));

	// Inform DevStudio of the commands we implement

	// TODO: Replace the AddCommand call below with a series of calls,
	//  one for each command your add-in will add.

	// The command name should not be localized to other languages.  The 
	//  tooltip, command description, and other strings related to this
	//  command are stored in the string table (IDS_CMD_STRING) and should
	//  be localized.

	LPCTSTR szCommand[] = { _T("PZQuickZipWorkspaceCommand"), 
							_T("PZOptionsZipWorkspaceCommand"), 
							_T("PZQuickZipProjectCommand"), 
							_T("PZOptionsZipProjectCommand"), 
							_T("PZOpenProjectCommand") };

	UINT uIDCmdString[] = { IDS_AUTOZIPWRKS_CMD_STRING, 
							IDS_OPTIONSZIPWRKS_CMD_STRING, 
							IDS_AUTOZIPPROJ_CMD_STRING, 
							IDS_OPTIONSZIPPROJ_CMD_STRING, 
							IDS_OPENPROJECT_CMD_STRING };

	int nCount = sizeof(szCommand) / sizeof(LPCTSTR);

	VARIANT_BOOL bRet;

	for (int nCmd = 0; nCmd < nCount; nCmd++)
	{
		CString strCmdString;
		strCmdString.LoadString(uIDCmdString[nCmd]);
		strCmdString = szCommand[nCmd] + strCmdString;

		CString sMethod(szCommand[nCmd]);
		sMethod += "Method";

		CComBSTR bszCmdString(strCmdString);
		CComBSTR bszMethod(sMethod);
		CComBSTR bszCmdName(szCommand[nCmd]);

		VERIFY_OK(pApplication->AddCommand(bszCmdString, bszMethod, nCmd, m_dwCookie, &bRet));

		if (bRet == VARIANT_FALSE)
		{
			// AddCommand failed because a command with this name already
			//  exists.  You may try adding your command under a different name.
			//  Or, you can fail to load as we will do here.
			*OnConnection = VARIANT_FALSE;
			return S_OK;
		}

		// Add toolbar buttons only if this is the first time the add-in
		//  is being loaded.  Toolbar buttons are automatically remembered
		//  by Developer Studio from session to session, so we should only
		//  add the toolbar buttons once.
		if (bFirstTime == VARIANT_TRUE)
		{
			VERIFY_OK(pApplication->
				AddCommandBarButton(dsGlyph, bszCmdName, m_dwCookie));
		}
	}

	*OnConnection = VARIANT_TRUE;
	return S_OK;
}

// This is called on shut-down, and also when the user unloads the add-in
STDMETHODIMP CDSAddIn::OnDisconnection(VARIANT_BOOL bLastTime)
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState());

	m_pCommands->UnadviseFromEvents();
	m_pCommands->Release();
	m_pCommands = NULL;

	// TODO: Perform any cleanup work here

	return S_OK;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -