webForumDet fria alternativet

ActiveX-kontroll

4 svar · 268 visningar · startad av Nexus86

Nexus86Medlem sedan okt. 20023 030 inlägg
#1

Jag har gjort en ActiveX-kontroll i VB som är uppe i version 2.0 nu. Den förra fungerade (1.0) i C++ också men den här verkar inte göra det. Tror att problemet ligger i att jag använder en IPictureDisp som det heter i VB. Se http://www.webforum.nu/showthread.php?s=&postid=655916#post655916 och neråt för mer information. Någon som har en lösning?

nikoMedlem sedan juni 20022 599 inlägg
#2

Nu är jag ingen COM-expert, men när jag testar att skapa en "tom" VB-kontroll med den här koden:

Property Get MyIcon() As IPictureDisp
    Set MyIcon = Nothing
End Property

Property Let MyIcon(iPd As IPictureDisp)

End Property

Så är det iaf inga problem att dra in den i MFC, som snyggt och prydligt wrappar IPictureDisp i en CPicture (som ärver av COleDispatchDriver). Så kanske ligger ditt problem i själva koden, kanske ligger det nånannanstans ..

Nexus86Medlem sedan okt. 20023 030 inlägg
#3

Men då kan du väl inte sätta MyIcon till något heller? När man har en property som ett objekt (vilket IPictureDisp nu är) ska man inte använda Property Let utan Property Set och så ska man ha ByVal framför iPd (om det nu behövs?).

nikoMedlem sedan juni 20022 599 inlägg
#4

Jo, det har du ju helt rätt i, slarvigt av mig. När jag använder Property Set så kraschar det inte däremot så är Property Set inte synligt i interfacet i MFC, vilket kan förklara kraschen eftersom du har kod där, vilket jag inte har när jag testat.

Om jag däremot skriver så här:

Public Sub SetMyIcon(ByRef iPd As IPictureDisp)

End Sub

så blir SetMyIcon synlig i Interfacet i MFC. Du kunde alltså använda funktioner istället för properties, fast då försvinner ju lite av finessen i VB-studion. Men jag kan för lite om sånt här, finns säkert nån lätt lösning ..? (Kan, om inte annat, kolla på det när du släpper sourcen.)

Nexus86Medlem sedan okt. 20023 030 inlägg
#5

Eftersom att det är du och att du hjälper mig kan jag ju skicka sourcen till dig så kan du kolla och se själv. Du får alltså en liten pre-view. :)

/r Lägger upp på internet och PM:ar dig adressen.

127 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)