Не могу скомпилировать чужой OCX

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Не могу скомпилировать чужой OCX

Сообщение Ruslan Demidow » 07.12.2004 (Вт) 13:04

Дано: есть полные исходники тривьюва с колонками (от vbaccelerator).
Захотел убрать субклассирование нажатия клавиши Enter.
Закомментировал ненужные строки
Код: Выделить всё
' некоторый код
   Case WM_KEYDOWN
      'If Not (m_hEdit = 0) Then
         ' Escape cancels editing
         ' Return ends editing
      '   If (wParam = vbKeyReturn) Then ' return
      '      SendMessageL m_hWnd, TVM_ENDEDITLABELNOW, 0, 0
      '   ElseIf (wParam = vbKeyEscape) Then ' escape
      '      SendMessageL m_hWnd, TVM_ENDEDITLABELNOW, 1, 0
      '   End If
      'Else
      '   If (wParam = vbKeyF2) Then
      '      lID = fSelected()
      '      If Not (lID = 0) Then
      '         fItemStartEdit lID
      '      End If
      '   End If
      'End If
   
   Case WM_NOTIFY
   
      ' Get the header structure.
     CopyMemory tHDR, ByVal lParam, LenB(tHDR)
'продолжение кода


Проблема: Пытаюсь заного скомпилировать контрол. При компиляции ругается на подчёркнутую строку

Код: Выделить всё
Private Type GUID
    Data1 As Long
    Data2 As Integer
    Data3 As Integer
    Data4(0 To 7) As Byte
End Type
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (lpvDest As Any, lpvSource As Any, ByVal cbCopy As Long)
Private Declare Function CLSIDFromString Lib "ole32.dll" (ByVal lpsz As Long, rguid As GUID) As Long
Public Const S_FALSE = 1
Public Const S_OK = 0
Public Type IPAOHookStruct 'IOleInPlaceActiveObjectHook
    lpVTable As Long 'VTable pointer
    IPAOReal As IOleInPlaceActiveObject 'Un-AddRefed pointer for forwarding calls
'============================================
    TBEx As vbalColumnTreeView    'Un-AddRefed native class pointer for making Friend calls
    ThisPointer As Long
End Type
Private Const strIID_IOleInPlaceActiveObject As String = "{00000117-0000-0000-C000-000000000046}"
Private IID_IOleInPlaceActiveObject As GUID
Private m_IPAOVTable(9) As Long

Ругается по поводу не объявленного типа IOleInPlaceActiveObject
На сайте разработчика скачал все необходимые библиотеки классов
(OleGuids.TLB и ISHF_Ex.tlb). Положил их в папку проекта. Пробую указать в References ссылку на ISHF_Ex.tlb - всё нормально. В ссылках есть. Подключена. Таким же макаром пробую и OleGuids.TLB - фиг. Даже в списке не появляется. А я знаю что объект IOleInPlaceActiveObject описан именно в этом файле. Соответственно не могу скомпилировать.
Ничего не пойму. :(
Как-то месяца два назад компилировал - всё нормально. А сейчас понадобилось - и облом (да ещё и последовательность своих действий забыл :oops:).
Помогите. Подскажите, где у меня руки кривые...
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 07.12.2004 (Вт) 13:07

С бейсиком иногда такое бывает... особенно часто функции string забывает :)

Попробуй явно указать имя модуля.имя типа...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 07.12.2004 (Вт) 13:09

попробуй regtlb.exe OleGuids.TLB

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 07.12.2004 (Вт) 13:10

regtlib OleGuids.TLB

выполни и все заработает

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 07.12.2004 (Вт) 13:31

СПАСИБО БОЛЬШОЕ всем ответившим: всё пошло.
Вот ведь: век живи - век учись. :)
Интересно, часто с ним такое бывает? :)
Это Ж-ж-ж-ж неспроста (с) Винни-Пух


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

    TopList  
cron