Files
copydev-imposing-tool/acrobat-plugin/native/LicenceVerifier.h
Jules de76c1776c Ajoute le plugin Acrobat Pro d'imposition (acrobat-plugin/)
Suite d'imposition professionnelle en Folder-Level Scripts JS (7 modules +
verification de licence Vision), avec un plugin natif hybride optionnel
(WinINet + Registre) pour deplacer la verification de licence en code
compile. Installeur install.bat sur le meme modele que celui du projet
desktop (git portable, detection automatique des dossiers Acrobat).
2026-06-21 22:16:24 +02:00

55 lines
2.5 KiB
C++
Executable File

// LicenceVerifier.h
// ---------------------------------------------------------------------------
// Verification de licence Vision (meme serveur/API que le projet "impose") -
// implementation Win32 pure (WinINet + Registre), independante du SDK
// Acrobat. Peut etre compilee et testee comme executable console autonome
// via TestConsole.cpp avant d'etre integree au plugin Acrobat (PluginMain.cpp).
//
// Dependances : Wininet.lib (WinINet), Advapi32.lib (Registre) - standard
// Win32, disponibles avec n'importe quelle installation de Visual Studio.
// ---------------------------------------------------------------------------
#pragma once
#include <string>
namespace CDImpLicence {
struct ResultatVerification {
bool succesReseau = false; // la requete HTTP a reussi (reponse recue)
bool valide = false; // la licence est active selon le serveur
int offlineTimeoutHeures = 24;
std::string erreur; // message d'erreur eventuel
std::string reponseBrute; // corps de la reponse, pour diagnostic
};
// Construit l'URL de verification et effectue la requete GET.
// serveurUrl : ex. "https://vision.copydev.fr/api/license.php"
ResultatVerification VerifierLicence(
const std::wstring& serveurUrl,
const std::wstring& cleLicence,
const std::wstring& machineId,
const std::wstring& hostname,
const std::wstring& produit
);
// Identifiant machine stable : tente d'utiliser le nom de la machine
// Windows (GetComputerNameW) combine au volume serial number du disque
// systeme (GetVolumeInformationW), deux API Win32 standard et fiables -
// contrairement a l'approche JS qui devait generer un identifiant
// aleatoire faute d'acces materiel direct.
std::wstring ObtenirMachineId();
std::wstring ObtenirHostname();
// Ecrit le verdict de licence dans HKCU\Software\Copydev\ImposingAcrobat
// sous forme de chaines REG_SZ simples (lisibles depuis le JS via
// WScript.Shell.RegRead, qui gere mal certains types REG_DWORD/QWORD) :
// LicenceOK "1" ou "0"
// LicenceValideJusqua timestamp Unix (secondes, en texte)
void EcrireVerdictRegistre(bool valide, int dureeToleranceHeures);
// Relit le verdict actuellement stocke (utilise par TestConsole.cpp pour
// verifier l'ecriture, et a titre de reference pour l'equivalent JS).
bool LireVerdictRegistre(bool& valideOut, long long& expirationUnixOut);
} // namespace CDImpLicence