术语 | AfxOleRegisterControlClass | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
释义 | AfxOleRegisterControlClass BOOL AFXAPI AfxOleRegisterControlClass( HINSTANCE hInstance, REFCLSID clsid, LPCTSTR pszProgID, UINT idTypeName, UINT idBitmap, int nRegFlags, DWORD dwMiscStatus, REFGUID tlid, WORD wVerMajor, WORD wVerMinor ); #include <afxctl.h> 返回值:如果注册了控件类,则返回非零值;否则返回0。 参数:
说明: 通过Windows的注册数据库来注册控件类。这就使得控件可以被具有OLE控件能力的容器所使用。AfxOleRegisterControlClass用控件的名字及其在系统中的位置来更新系统注册表,同时在注册表中设置控件支持的线程模式。有关的更多信息请参见《Visual C++联机文档》中的“技术注释64”,名为“OLE控件中的Apartment模式”,以及《Win32 SDK》中的“进程与线程”。 示例: // COleObjectFactory::UpdateRegistry 类成员函数的实现 // BOOL CMyApartmentAwareCtrl::CApartmentCtrlFactory::UpdateRegistry(BOOL bRegister) { // 目的:检验你的控件是否遵循Apartment模式线程规则。 // 更多的信息参考MFC 技术注释64。 // 如果你的控件不遵循Apartment模式规则,那么你必须修改下面的代码 // 将第六个参数从 afxRegInsertable | afxRegApartmentThreading // 变为 afxRegInsertable. if(bRegister) return AfxOleRegisterControlClass() AfxGetInstanceHandle(), m_clsid, m_lpszProgID, IDS_APARTMENT, IDB_APARTMENT, afxRegInsertable | afxRegApartmentThreading, _dwApartmentOleMisc, _tlid, _wVerMajor, _wVerMinor); else return AfxOleUnregisterClass(m_clsid, m_lpszProgID); 上面的例子演示了如何将代表可插入的标志和代表Apartment模式的标志通过或运算组合成第六个参数来调用AfxOleregisterControlClass函数。 afxRegInsertable | afxRegApartmentThreading, 对于允许的容器,该控件将出现在插入对象对话框中,同时它将会适用Apartment模式。适用于Apartment模式的控件必须确保静态的类数据通过锁定得到保护,因此当Apartment中的控件访问静态数据时,在它结束之前不会被调度程序禁止,相同类的其它对象也不会开始使用相同的静态数据。对静态数据的任何访问都必须间接地通过临界区代码进行。 请参阅: AfxOleRegisterPropertyPageClass, AfxOleRegisterTypeLib, AfxOleUnregisterClass, AfxOleUnregisterTypeLib |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
随便看 |
|
MFC类库中文详解手册包含4274条MFC类库参考词条,基本涵盖了Microsoft基本类库中的类、全局函数、全局变量和宏的内容,是计算机编程的有利工具。