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).
This commit is contained in:
Jules
2026-06-21 22:16:24 +02:00
parent 202834a794
commit de76c1776c
14 changed files with 2856 additions and 0 deletions

View File

@@ -0,0 +1,54 @@
// 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