📄 bcamtopologyview.cpp
字号:
//-----------------------------------------------------------------------------
// (c) 2002 by Basler Vision Technologies
// Section: Vision Components
// Project: BCAM
// $Header: BcamTopologyView.cpp, 5, 19.12.2002 14:29:14, Albrecht, M.$
//-----------------------------------------------------------------------------
/**
\file BcamTopologyView.cpp
*
\brief Implementation of DLL Exports
*
* exports DllMain, DllCanUnloadNow, DllGetClassObject, DllRegisterServer and DllUnregisterServer
* The wizard generated code is slightly modified:
* To run this tool you need WinXP. The DllRegisterServer checks if the current system is
* a WinXP system and fails with an error message if not.
*/
//-----------------------------------------------------------------------------
#include "stdafx.h"
#include "resource.h"
#include "BcamTopologyView.h"
#include "BcamTopologyView_i.c"
#include "BcamTopologyViewCtl.h"
#ifdef _MERGE_PROXYSTUB
#include "dlldatax.h"
extern "C" HINSTANCE hProxyDll;
#endif
CComModule _Module;
BEGIN_OBJECT_MAP(ObjectMap)
OBJECT_ENTRY(CLSID_BcamTopologyViewCtl, CBcamTopologyViewCtl)
END_OBJECT_MAP()
//------------------------------------------------------------------------------
// extern "C"BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
// Author:
// Date: 19.12.2002
//------------------------------------------------------------------------------
/**
* DLL Entry Point
*
* \param hInstance
* \param dwReason
* \param lpReserved
*
*
*/
//------------------------------------------------------------------------------
extern "C"
BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
{
lpReserved;
#ifdef _MERGE_PROXYSTUB
if (!PrxDllMain(hInstance, dwReason, lpReserved))
return FALSE;
#endif
if (dwReason == DLL_PROCESS_ATTACH)
{
_Module.Init(ObjectMap, hInstance, &LIBID_BcamTopologyViewLib);
DisableThreadLibraryCalls(hInstance);
}
else if (dwReason == DLL_PROCESS_DETACH)
_Module.Term();
return TRUE; // ok
}
//------------------------------------------------------------------------------
// STDAPI DllCanUnloadNow(void)
// Author:
// Date: 19.12.2002
//------------------------------------------------------------------------------
/**
* Used to determine whether the DLL can be unloaded by OLE
*
* \param void
* \return
*
* error code
*
*/
//------------------------------------------------------------------------------
STDAPI DllCanUnloadNow(void)
{
#ifdef _MERGE_PROXYSTUB
if (PrxDllCanUnloadNow() != S_OK)
return S_FALSE;
#endif
return (_Module.GetLockCount()==0) ? S_OK : S_FALSE;
}
//------------------------------------------------------------------------------
// STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
// Author:
// Date: 19.12.2002
//------------------------------------------------------------------------------
/**
* Returns a class factory to create an object of the requested type
*
* \param rclsid class id
* \param riid interface id
* \param ppv where to return the interface pointer
* \return
*
* error code
*
*/
//------------------------------------------------------------------------------
STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
{
#ifdef _MERGE_PROXYSTUB
if (PrxDllGetClassObject(rclsid, riid, ppv) == S_OK)
return S_OK;
#endif
return _Module.GetClassObject(rclsid, riid, ppv);
}
//------------------------------------------------------------------------------
// BOOL CBcamTopologyViewCtl::Is_WinXP ()
// Author:
// Date: 30.08.2002
//------------------------------------------------------------------------------
/**
* check if the program is running under WinXP
*
* \return
*
* nonzero if the system is a XP system
*
*/
//------------------------------------------------------------------------------
BOOL Is_WinXP ()
{
OSVERSIONINFO osvi;
DWORDLONG dwlConditionMask = 0;
// Initialize the OSVERSIONINFOEX structure.
ZeroMemory(&osvi, sizeof(OSVERSIONINFO));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx (&osvi);
return ((osvi.dwPlatformId >= VER_PLATFORM_WIN32_WINDOWS) &&
(osvi.dwMajorVersion >= 5) && (osvi.dwMinorVersion >= 1) );
}
//------------------------------------------------------------------------------
// STDAPI DllRegisterServer(void)
// Author:
// Date: 19.12.2002
//------------------------------------------------------------------------------
/**
* Adds entries to the system registry
*
* \param void
* \return
*
* error code
*
*/
//------------------------------------------------------------------------------
STDAPI DllRegisterServer(void)
{
if (! Is_WinXP())
{
::MessageBox(NULL, "WinXP required", "BcamTopologyViewCtl", MB_OK);
return HRESULT_FROM_WIN32(ERROR_OLD_WIN_VERSION);
}
#ifdef _MERGE_PROXYSTUB
HRESULT hRes = PrxDllRegisterServer();
if (FAILED(hRes))
return hRes;
#endif
// registers object, typelib and all interfaces in typelib
return _Module.RegisterServer(TRUE);
}
//------------------------------------------------------------------------------
// STDAPI DllUnregisterServer(void)
// Author:
// Date: 19.12.2002
//------------------------------------------------------------------------------
/**
* Removes entries from the system registry
*
* \param void
* \return
*
* error code
*
*/
//------------------------------------------------------------------------------
STDAPI DllUnregisterServer(void)
{
#ifdef _MERGE_PROXYSTUB
PrxDllUnregisterServer();
#endif
return _Module.UnregisterServer(TRUE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -