typeof skinPath = S;; typeof skinListe = [S r1];; defcom CinterfDL = interfDL S I S I;; fun searchBmpDoc(l)= if l == nil then nil else let l -> [elt suite] in if (strfind "> doc client" elt 0) != nil then let strextr elt -> [s _] in [nth_list s 11 atoi nth_list s 12] else searchBmpDoc suite;; fun sizeSkin(l, size)= if l == nil then size else let l -> [file suite] in (set size = size + (_fileSize _checkpack file)/1024; sizeSkin suite size);; fun getSkinRSC(l/*, fic*/)= _RSregisterfiles this l RSfile|RScontrol; l;; fun change(cli, p)= let searchBmpDoc lineextr _getpack _checkpack strcat DMSpathname ".dms" -> [file type] in let DMSdocs.bmpnameDOC -> file in /* let DMSdocs.typebmpDOC -> type in*/ let _listoffiles p -> l in _DMSsend this cli CinterfDL [(linebuild getSkinRSC l /*file*/) (sizeSkin l 0) file type];; fun activate(from, cli, action, param, rep)= if !strcmp action "start" then _DMScreateClientDMI this cli linebuild skinListe else if !strcmp action "change" then change cli param else 0;; fun IniDMI(param)= let strextr _getpack _checkpack param -> l in ( set skinPath = getInfo l "interfSkinPath" ); set skinListe = _listofsubdir skinPath; _DMSregisterDMI this @activate nil nil nil; 0;; fun __chgSkin(skin)= change DMSsender skin;;