Dde: dynamic data exchange

Description

Voila une petite classe permettant de mettre en oeuvre une liaison Client vers un serveur DDE. Ce n'est qu'une adaptation d'un code que j'ai trouvé dans les aides, mais vu que j'ai galèré pour la mettre en application, je trouve judicieux de la diffuser...

Pour la classe, j'avoue qu'il y a peut-etre mieux, mais bon elle a le merite d'etre claire, et concise... Pour les fouineurs, je n'ai pas reflechi pour la création d'un Serveur DDE, mais pour les courageux le travail reste à faire....

Source / Exemple :


juste un exemple de code avec le serveur DDE de EXCEL.... 

/********************************************************/
/*                            Verifie que Excel est installé                           */
/********************************************************/
static bool ExcelRegistry(char *Valeur)
  {
  CRegistreUtil Registre;

  if(!Registre.LitTexte(HKEY_CLASSES_ROOT,EXCEL_KEY,"",Valeur,100))
    return TRUE;
  return FALSE;
  }

/********************************************************/
/*                            Envoi l'instruction DDE a excel                         */
/********************************************************/
static bool ExcelDDE(char *Commande)
  {
  DDE  ddeSysteme;	

  if(ddeSysteme.OuvrirConnexion("Excel","System"))
    {
    ddeSysteme.EnvoiChaine(Commande);
    ddeSysteme.FermeConnexion();
    return TRUE;
    }
  return FALSE;
  }

/********************************************************/
/*                       Ouvre le fichier et l'envoi vers excel                      */
/********************************************************/
void COscilloUSBDlg::OnMenuEporterversexcel() 
{
CString	Sortie;
char Commande[500];
char Valeur[200];
CFileDialog dlg(false,"xls","*.xls");

  if(dlg.DoModal()==IDOK)
    {
    Sortie=dlg.GetPathName();

    if(ExcelRegistry(Valeur))
      {
      wsprintf(Commande,"[OPEN(\"%s\")]",Sortie.GetBuffer(Sortie.GetLength()));
      WinExec(Valeur,SW_SHOWDEFAULT);   // Lance Escel
      ExcelDDE(Commande);                      // Envoi l'instruction DDE
      }		
    }
  }

Conclusion :


Bien sur ce n'est qu'un exemple, moi je l'utilise pour créer un fichier et l'envoyer directement vers un logiciel d'analyse (REGRESSI)... Certains logiciels courants utilisent des liasons client-serveur de type OLE ou DDE. (WORD-EXCEL-ACCESS etc ...)

A vous de jouer....

NB :
Merci à MangaII pour sa classe d'acces à la base de registre (CRegistreUtil) .Il est bien ce petit gars...

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.