récuperer les événements d'une dll c++ vers projet VB.net
Bonjour,
Je travail sur vb.net visual basic 2008. Mon objectif est de créer mon propre namespace sur l’explorateur et gérer les événements comme sur windows.
Pour la création du namespace avec les sous dossiers j’utilise une dll C++ et je peux gérer les événements en modifiant le code C++.
Comme dans le message map suivant, j’appelle la fonction Hello sur l’événement de double click sur un dossier dans le listView
Code:
1 2 3 4 5 6
| BEGIN_MSG_MAP(MyshellView)
NOTIFY_CODE_HANDLER(HDN_ITEMCLICK, Hello)
COMMAND_ID_HANDLER(ID_NEWITEM_FOLDER, OnNewFolder)
NOTIFY_CODE_HANDLER(LVN_BEGINLABELEDIT, OnLabelEditBegin)
NOTIFY_CODE_HANDLER(LVN_ENDLABELEDIT, OnLabelEditEnd)
END_MSG_MAP() |
J’ai une fonction wndProc pour le traitement des messages
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| LRESULT CALLBACK MyShellView::WndProc(HWND hWnd, UINT uMessage, WPARAM wParam, LPARAM lParam)
{
.
.
lRes = :: DefWindowProc(hWnd,uMessage, wParam, lParam);
return lRes;
}
template <class TBase>
INT_PTR CALLBACK CDialogImplBaseT< TBase >::StartDialogProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
return pProc(hWnd, uMsg, wParam, lParam);
}
template <class TBase>
INT_PTR CALLBACK CDialogImplBaseT< TBase >:: DialogProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
CDialogImplBaseT< TBase >* pThis = (CDialogImplBaseT< TBase >*)hWnd;
// set a ptr to this message and save the old value
_ATL_MSG msg(pThis->m_hWnd, uMsg, wParam, lParam);
const _ATL_MSG* pOldMsg = pThis->m_pCurrentMsg;
pThis->m_pCurrentMsg = &msg;
// pass to the message map to process
LRESULT lRes;
BOOL bRet = pThis->ProcessWindowMessage(pThis->m_hWnd, uMsg, wParam, lParam, lRes, 0);
if(bRet)
{
switch (uMsg)
{
case WM_COMPAREITEM:
.
// return directly
bRet = (BOOL)lRes;
break
}
.
.
return bRet;
} |
Pour importer mes fonctions dll vers mon projet VB, je procède à cette déclaration
Code:
1 2
| Overloads Declare Sub Hello Lib _
"D:\
\Debug\Mydll.dll" () |
Maintenant mon but c’est de récupérer les événements de la dll vers mon projet Vb.net et gérer ma base de données suite au événement effectué .
Avez-vous une idée comment faire pour catcher l’événement sur mon projet exe VB.net ?
Ca fait une semaine que je cherche sur internet et je trouve pas de solution, j’espère que mon problème est claire pour que vous puissiez m’aider.:(
Merci d’avance à tous.