Bonjour tout le monde,

je développe une appli sous Builder2010 en c++ afin de piloter en pan(x), tilt(y) et zoom une webcam quick cam Sphere AF.
SE windows7 64bits, driver UVC ver 13.0

Pour le zoom le forun quickcamteam conseille d'utiliser le fichier LVUVCPublic.h.

ce fichier commence par ces lignes que je ne comprends pas vraiment:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
/*******************************************************************************
 * GUIDS
 ******************************************************************************/
 
// {CAAE4966-272C-44a9-B792-71953F89DB2B}
#define STATIC_PROPSETID_LOGITECH_PUBLIC1 \
    0xCAAE4966, 0x272C, 0x44A9, 0xB7, 0x92, 0x71, 0x95, 0x3F, 0x89, 0xDB, 0x2B
DEFINE_GUIDSTRUCT("CAAE4966-272C-44a9-B792-71953F89DB2B", PROPSETID_LOGITECH_PUBLIC1);
#define PROPSETID_LOGITECH_PUBLIC1  DEFINE_GUIDNAMED(PROPSETID_LOGITECH_PUBLIC1)
pour la commande du zoom je code la fonction:
(je n'ai laissé que l'essentiel)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
HRESULT CameraZoom(long value)
{
    HRESULT hr = 0;
    KSPROPERTY_LP1_DIGITAL_ZOOM_S setting;
 
    setting.ulZoom = value;
 
    IKsPropertySet *pKsPropertySet = NULL;
     hr = pFilter->QueryInterface(IID_IKsPropertySet,(void**)&pKsPropertySet);
 
    hr = pKsPropertySet->Set(PROPSETID_LOGITECH_PUBLIC1,KSPROPERTY_LP1_DIGITAL_ZOOM,NULL,0,&setting,sizeof(setting));
 
    return hr;
}
lors de la construction de l'application j'ai une erreur de link:
[ILINK32 Erreur] Error: '_PROPSETID_LOGITECH_PUBLIC1' externe non résolu, référencé depuis G:\CAM SPHERE\WEBCAM\DEBUG\CAM.OBJ
qui concerne la ligne

Code : Sélectionner tout - Visualiser dans une fenêtre à part
hr = pKsPropertySet->Set(PROPSETID_LOGITECH_PUBLIC1,KSPROPERTY_LP1_DIGITAL_ZOOM,NULL,0,&setting,sizeof(setting));
PROPSETID_LOGITECH_PUBLIC1 est défini dans le LVUVCPublic.h (les lignes copiées) et je ne vois pas comment tout ceci fonctionne.
Je n'ai pas trouvé d'explication sur le rôle du GUID.
Le fichier Ks.h est inclus dans l'entête de mon fichier cpp.
Je précise que le forum de logitech n'accepte plus de nouveaux inscrits, je ne peux donc pas leur demander une explication.

J'espère que je suis suffisamment clair.
Merci pour votre aide.