baptistemazet
Messages postés25Date d'inscriptionjeudi 23 décembre 2004StatutMembreDernière intervention24 mai 2006
-
15 mars 2005 à 17:45
baptistemazet
Messages postés25Date d'inscriptionjeudi 23 décembre 2004StatutMembreDernière intervention24 mai 2006
-
16 mars 2005 à 11:39
Bonjour, c'est un problème qui me tracasse depuis pas mal de temps et je ne vois pas comment le résoudre si ce n'est faire appel à vous qui serez super sympa de me répondre !
Je souhaite utiliser la classe "Application.cls" qui implemente "SWPublished.SWAddin" dans mon projet ".vbp".
1 - Comment faire ?
2 - SWAddin est une interface. Application.cls qui l'implemente n'a pas de main() ! Comment récupérer le iCookie d'une instance Application ou d'une instance de SWAddin ?
Merci de me livrer vos suggestions ! Baptiste
Voici la classe :
Application.cls
Implements SWPublished.SWAddin
Public iSldWorks As SldWorks.SldWorks
Public iCookie As Long
Public iToolbarID As Long
'Implementation methods of the SwAddin interface
Public Function SwAddin_ConnectToSW(ByVal ThisSW As Object, ByVal Cookie As Long) As Boolean
Dim bRet As Boolean
'Store reference to SW session
Set iSldWorks = ThisSW
'Store cookie from SW
iCookie = Cookie
'Inform SW about the object that contains the callbacks
'bRet = iSldWorks.SetAddinCallbackInfo(App.hInstance, Me, iCookie)
'Add a menu item on the frame when no documents are present
bRet = iSldWorks.AddMenu(swDocNONE, "SampleNONE", -1)
bRet = iSldWorks.AddMenuItem2(swDocNONE, iCookie, "[mailto:DocNONE_Item@SampleNONE DocNONE_Item@SampleNONE]", -1, "DocNONE_Item", "DocNONE_ItemUpdate", "Sample|DocNONE_Item hint string")
'Fonction de la classe SWAddin héritée par Application.cls
SwAddin_ConnectToSW = True
baptistemazet
Messages postés25Date d'inscriptionjeudi 23 décembre 2004StatutMembreDernière intervention24 mai 2006 15 mars 2005 à 18:53
Merci pour ta reponse Christophe !
Le problème est que je dois faire appel à cette classe Application.cls dans mon programme à un moment où une instance : UneInstance comme tu l'as appelée, est active. Je ne vois vraiment pas comment l'intégrer et accéder à cette valeur de iCookie déjà défini alors, mais où ? Je n'ai en effet pas accès au code de SWAddin.
Si quelqu'un connait les add-in solidworks ou l'utilisation correcte d'implements, merci de me donner des idées de réflexion.
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 15 mars 2005 à 19:58
si je pige le pb tu dois simplement faire appel à cette fonction SWAddin_ConnectToSW via ton isntance de Application.cls et ensuite tu accèdera au membre iCookie de ton instance.
En fait, Application.cls n'est qu'un réhabillage de SWAddin, pour te permettre d'y accéder
baptistemazet
Messages postés25Date d'inscriptionjeudi 23 décembre 2004StatutMembreDernière intervention24 mai 2006 16 mars 2005 à 11:39
Salut Christophe,
La suggestion est bonne par rapport à ce que j'avais pensé de l'application. J'ai testé ta proposition, c'était judicieux mais ça ne marche pas ...
En fait, ce projet représente un add-in qui génère une dll. Cette dll est alors chargée dans un programme externe pour générer des menus et barres d'outil.
Mon objectif était d'unifier ces opérations au-seins d'un même projet sans avoir à charger cette dll. Je me devais donc de comprendre le principe ! Mais je crois que c'est pas la peine !
Application.cls est indépendant de l'application (en l'occurrence Solidworks) que j'execute ! Bizare Bizarre tout ça !
Une idée sur comment faire pour ne pas avoir besoin d'intégrer cette dll - implémentant l'équivalant du code dans le projet sur lequel je travaille ?