alibek писал(а):Никак. Эти функции не для использования программистами.
Andrey Fedorov писал(а):Используют...
Ссылку на какой именно объект она даёт?
Option Explicit
Private Declare Function GetCurrentVbaProject Lib "vba6.dll" Alias "EbGetExecutingProj" (hProject As Any) As Long
Private Sub Class_Initialize()
Dim ln As Long
Dim obj As Object
ln = GetCurrentVbaProject(obj)
MsgBox ObjPtr(obj) & " " & ln
Dim vbPr As VBProject
ln = GetCurrentVbaProject(vbPr)
MsgBox ObjPtr(vbPr) & " " & ln
'оба варианта срабатывают и циферки совпадают - какой-то объект я таки получил
MsgBox vbPr.FileName 'но не этот :( На этой строке бейсик дохнет
End Sub
Хакер писал(а):В чём смысл самодельного неполноценного аналога AddressOf?
В том, что AddressOf отсутствует.
Хакер писал(а):И класс не COM-ный
Option Explicit
Private Declare Function GetCurrentVbaProject Lib "vba6.dll" Alias "EbGetExecutingProj" (hProject As IUnknown) As Long
Private Sub Class_Initialize()
Dim ln As Long
Dim obj As IUnknown
ln = GetCurrentVbaProject(obj)
MsgBox ObjPtr(obj) & " " & ln
End Sub
Хакер писал(а):В том, что AddressOf отсутствует.
В VB5?
Хакер писал(а):Так что тебе повезло
Хакер писал(а):Так что поработать с ним через ссылку, объяленную As Object никак не получится.
В чём же тогда повезло?
А эту тему - тоже? Я так понимаю - безнадёга? Ну хоть что-то хоть как-то можно от этого объекта получить? А то даже обиднотак что вторую тему можно смело закрывать.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 26