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

📄 bcamtopologyview.cpp

📁 BCAM 1394 Driver
💻 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 + -