Здесь можно найти готовые «кирпичики» — части кода, пригодные для построения более крупных проектов, а также решения различных типовых и не очень задач на VB.
Модератор: Brickgroup
-
The trick
-
- Постоялец
-
-
- Сообщения: 781
- Зарегистрирован: 26.06.2010 (Сб) 23:08
The trick » 04.02.2023 (Сб) 15:49
Любой пользовательский объект поддерживает интерфейс AreYouABasicInstance (IID_AreYouABasicInstance = {0B6C9465-D082-11CF-8B4F-00A0C90F2704}). Для тех кто не любит библиотеки типов можно использовать следующий код:
- Код: Выделить всё
Option Explicit
Private Const AreYouABasicInstance As String = "{0B6C9465-D082-11CF-8B4F-00A0C90F2704}"
Private Declare Function vbaCheckType Lib "msvbvm60" Alias "__vbaCheckType" (ByVal pObj As Any, ByRef pIID As Any) As Boolean
Private Declare Function IIDFromString Lib "ole32" (ByRef lpsz As Any, ByRef lpiid As Any) As Long
Private Sub Form_Load()
Dim bIID(15) As Byte
IIDFromString ByVal StrPtr(AreYouABasicInstance), bIID(0)
If vbaCheckType(Me, bIID(0)) Then
MsgBox "VB obj"
End If
End Sub
Вместо Me передается любой объект.
UA6527P
Вернуться в Кирпичный завод
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15