From: < Microsoft Internet Explorer 5 > Subject: Codestriker: "Parallel view of jdic/src/packager/src/win32/script/jnlp2msi.cpp v1.2" Date: Thu, 10 Jun 2004 15:55:16 +0800 MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_NextPart_000_0000_01C44F03.52A55680"; type="text/html" X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 This is a multi-part message in MIME format. ------=_NextPart_000_0000_01C44F03.52A55680 Content-Type: text/html; charset="gb2312" Content-Transfer-Encoding: quoted-printable Content-Location: file://C:\temp\codestriker.pl.html Codestriker: = "Parallel view of jdic/src/packager/src/win32/script/jnlp2msi.cpp = v1.2"
Codestriker=20 1.8.0

List=20 open topics | Create=20 new topic | Search=20

 //Whether to print the help info= .  //Whether to print the help info= . //Whether the MS SDK Path has&nb= sp;been specified  //Whether the MS SDK Path has&nb= sp;been specified as an env variable //Whether user has specified the = ;mssdkpath in the cmd line //The MSSDKDir env variable value /////////////////////////////////////////////////////////= /////////////////////  /////////////////////////////////////////////////////////= ///////////////////// /////////////////////////////////////////////////////////= /////////////////////  /////////////////////////////////////////////////////////= /////////////////////  * Format the path str, rep= lace any occurance of \ with \\. void formatPathStr(char* originalPathStr, = char* formatPathStr)     for (int i =3D&nbs= p;0; i < strlen(originalPathStr); i++)         if (= (originalPathStr[i] =3D=3D '\\') && (original= PathStr[i + 1] !=3D '\\'))          &nb= sp;  strcat(formatPathStr, "\\\\");         else = ;          &nb= sp;  sprintf(formatPathStr, "%s%c\0", formatPathStr,&= nbsp;originalPathStr[i]); /////////////////////////////////////////////////////////= /////////////////////  * Process option parametes and&= nbsp;generate the target value   * Process option parametes and&= nbsp;generate the target value          &nb= sp;  //we need to set param as -D= MSSDKPath=3D"... ..."           &nb= sp;  //we need to set param as -D= MSSDKPath=3D"... ..."          &nb= sp;  if (!strcmp(argv[iLeft], sOpts[MSSDKPath]) = || !strcmp(argv[iLeft], lOpts[MSSDKPath]))           &nb= sp;  if (!strcmp(argv[iLeft], sOpts[MSSDKPath]) = || !strcmp(argv[iLeft], lOpts[MSSDKPath]))          &nb= sp;  {           &nb= sp;  {          &nb= sp;      mssdkpathSet =3D true;&n= bsp;             &nb= sp;      mssdkpathSetByUser =3D t= rue;             &nb= sp;  }           &nb= sp;  }          &nb= sp;  sprintf(param, "%s%s%s\"%s\"", "-D", paraNa= me, "=3D", argv[++iLeft]);           &nb= sp;  char * argvIndex =3D argv[++iLeft];          &nb= sp;  char formatArg[500] =3D "\0";          &nb= sp;  formatPathStr(argvIndex, formatArg);          &nb= sp;  sprintf(param, "%s%s%s\"%s\"", "-D", paraNa= me, "=3D", formatArg);         else = ;if ((!strcmp(argv[iLeft], sOpts[PackageName]) || !st= rcmp(argv[iLeft], lOpts[PackageName])) ||          else = ;if ((!strcmp(argv[iLeft], sOpts[PackageName]) || !st= rcmp(argv[iLeft], lOpts[PackageName])) ||          &nb= sp;  (!strcmp(argv[iLeft], sOpts[OutputDir]) || = !strcmp(argv[iLeft], lOpts[OutputDir])) ||           &nb= sp;  (!strcmp(argv[iLeft], sOpts[OutputDir]) || = !strcmp(argv[iLeft], lOpts[OutputDir])) ||     char CREATEPROCESS[BUFFER_SI= ZE];      char CREATEPROCESS[BUFFER_SI= ZE];     sprintf(CREATEPROCESS, "%s&n= bsp;%s %s %s %s %s %s %s %s %s&nb= sp;%s %s %s %s %s",           if (= mssdkpathSetByUser)          JavaPath,=  optValues[ResourceDir], optValues[PackageName], optValues= [OutputDir],           optValues= [Version], optValues[Release], optValues[LicenseDir],            &nb= sp;      sprintf(CREATEPROCESS, "%s&nb= sp;%s %s %s %s %s %s %s %s %s&nbs= p;%s %s %s %s %s",          optValues= [BannerJpgFile], optValues[PanelJpgFile], optValues[MSSDKPath],=             &nb= sp;           &nbs= p;  JavaPath, optValues[ResourceDir], optValues[Packa= geName], optValues[OutputDir],          optValues= [EnableShortcut], optValues[EnableAssociation],            &nb= sp;           &nbs= p;  optValues[Version], optValues[Release], optValues= [LicenseDir],          optValues= [EnableSystemCache], ClassName, JnlpFile);           &nb= sp;           &nbs= p;  optValues[BannerJpgFile], optValues[PanelJpgFile],&nbs= p;optValues[MSSDKPath],           &nb= sp;           &nbs= p;  optValues[EnableShortcut], optValues[EnableAssociation= ],           &nb= sp;           &nbs= p;  optValues[EnableSystemCache], ClassName, JnlpFile= );         else = ;if (mssdkpathSetByEnv)          &nb= sp;      sprintf(CREATEPROCESS, "%s&nb= sp;%s %s %s %s %s %s %s %s %s&nbs= p;%s %s %s%s%s %s %s",           &nb= sp;           &nbs= p;  JavaPath, optValues[ResourceDir], optValues[Packa= geName], optValues[OutputDir],           &nb= sp;           &nbs= p;  optValues[Version], optValues[Release], optValues= [LicenseDir],           &nb= sp;           &nbs= p;  optValues[BannerJpgFile], optValues[PanelJpgFile],&nbs= p;          &nb= sp;           &nbs= p;  optValues[EnableShortcut], optValues[EnableAssociation= ],           &nb= sp;           &nbs= p;  optValues[EnableSystemCache], "-DMSSDKDir=3D\"", = mssdkEnvVar, "\"",           &nb= sp;           &nbs= p;  ClassName, JnlpFile);     if (echoJavaCmd) <= /TR>      "     &n= bsp;    Windows MSI file.(The output&n= bsp;will be in executable bootstrapper\n"      "     &n= bsp;    Windows MSI file.(The output&n= bsp;will be in executable bootstrapper\n"     "     &n= bsp;    format.)\n"      "     &n= bsp;    format.)\n"     "Note:   This = ;tool requires J2SE 1.5.0+.\n"          "Note:   This = ;tool requires J2SE 1.5.0+.\n"     "     &n= bsp;  In order to install into the&nbs= p;system cache, you need to configure\n"      "     &n= bsp;  the sytem cache accordingly. Please&n= bsp;refer to Java Webstart documents.\n"     "Usage:  jnlp2msi = [-options] -msd|-mssdkdir <MS SDK dir> <= ;Jnlp File Path>\n"      "Usage:  jnlp2msi = [-options] <Jnlp File Path>\n"         "e.g.&nbs= p;   jnlp2msi -msd \"C:\\Program Files\\Mic= rosoft SDK\" d:\\draw.jnlp\n"      "Where   <MS&nb= sp;SDK dir>\n"      "Where   <Jnlp&= nbsp;File Path>\n"     "     &n= bsp;  is the directory where the Windo= ws MS SDK update package\n"      "     &n= bsp;  gets installed.\n"      "     &n= bsp;  <Jnlp File Path>\n"      "     &n= bsp;  is the path of the Jnlp fil= e to be packaged.\n"      "     &n= bsp;  is the path of the Jnlp fil= e to be packaged.\n"         " &n= bsp; -msd <value> | -mssdkdir <value>= ;\n"         " &n= bsp;      set the directory = where the Windows MS SDK update package\n"<= /TD>     "     &n= bsp;  gets installed. If this option i= s not specified, a env\n"         " &n= bsp;      variable MSSSDKDir must=  be set to indicate the directory\n"      "     &n= bsp;  information. If both this option = ;and MSSDKDir env variable\n"     "     &n= bsp;  are set, the value of MSSDKDir&n= bsp;env variable will be ignored.\n"     "   -rd  = ;<value> | -resourcedir <value>\n"      "   -rd  = ;<value> | -resourcedir <value>\n"     "     &n= bsp;  set the directory of the JNLP&nb= sp;resource files, the default value\n"      "     &n= bsp;  set the directory of the JNLP&nb= sp;resource files, the default value\n"     "     &n= bsp;  is the parent directory of the&n= bsp;given JNLP file.\n"      "     &n= bsp;  is the parent directory of the&n= bsp;given JNLP file.\n"     "     &n= bsp;  part of the MSI installation GUI= . If not set, a jpeg picture\n"      "     &n= bsp;  part of the MSI installation GUI= . If not set, a jpeg picture\n"     "     &n= bsp;  contained in the jar file will&n= bsp;be used.\n"      "     &n= bsp;  contained in the jar file will&n= bsp;be used.\n"     "   -es  = ;| -enableshortcut\n"      "   -es  = ;| -enableshortcut\n"     "     &n= bsp;  create shortcut on the desktop a= nd Start Menu after the generated\n"      "     &n= bsp;  create shortcut on the desktop a= nd Start menu after the generated\n"     "     &n= bsp;  MSI gets installed.\n"      "     &n= bsp;  MSI gets installed.\n"     "   -ea  = ;| -enableassociation\n"      "   -ea  = ;| -enableassociation\n"     "     &n= bsp;  associate the JNLP application with&n= bsp;the file extension or mime type\n"      "     &n= bsp;  allow the JNLP application to as= sociate itself with the file\n"     "     &n= bsp;  specified by the the assoication = ;tag in the jnlp file.\n"      "     &n= bsp;  extension or mime-type specified by&n= bsp;the the assoication tag in\n"     "     &n= bsp;  the jnlp file.\n"     "   -esc |&nb= sp;-enablesystemcache\n"      "   -esc |&nb= sp;-enablesystemcache\n"     "     &n= bsp;  install the JNLP application into&nbs= p;the system cache of Java\n"      "     &n= bsp;  install the JNLP application into&nbs= p;the system cache of Java\n"     "     &n= bsp;  Webstart. By default, the application=  will be installed into\n"      "     &n= bsp;  Webstart. By default, the application=  will be installed into\n"     "   -?  =  | -help\n"      "   -?  =  | -help\n"     "     &n= bsp;  print this help message.\n"      "     &n= bsp;  print this help message.\n"         "Sample:&= nbsp;jnlp2msi -msd \"C:\\Program Files\\Microsoft SDK= \" d:\\draw.jnlp\n"         " &n= bsp;      (if the MSSDKDir e= nv variable is not set.)\n"         " &n= bsp;      or\n"         " &n= bsp;      jnlp2msi d:\\draw.jnlp\n"         " &n= bsp;      (if the MSSDKDir e= nv variable is not set.)\n"         "\n"=  /////////////////////////////////////////////////////////= /////////////////////  /////////////////////////////////////////////////////////= /////////////////////         return&nb= sp;1;          return&nb= sp;1;         //Check&n= bsp;if the MSSDKDir environment variable has&nbs= p;been set     char * temsdkVar;<= /TR>      temsdkVar =3D getenv(&n= bsp;"MSSDKDir" );     if( temsdkVar !=3D = ;NULL )        mssdkpathSetByE= nv =3D true;        formatPathStr(t= emsdkVar, mssdkEnvVar);     int iLeft =3D 1;     while (iLeft < = argc)      while (iLeft < = argc)     if ((!mssdkpathSetByUser)&nb= sp;&& (!mssdkpathSetByEnv))         printUsag= e();          printUsag= e();         return&nb= sp;-1;             return&nb= sp;-1;   
       
1   1  
2   2  
3   3  
4   4  
5   5  
6   6  
7   7  
8   8  
9   9  
10   10  
11   11  
12   12  
13   13  
14   14  
15   15  
16   16  
17   17  
18   18  
19   19  
20   20  
21   21  
22   22  
23   23  
24   24  
25   25  
26   26  
27   27  
28   28  
29   29  
30   30  
31   31  
32   32  
33   33  
34   34  
35   35  
36   36  
37   37  
38   38  
39   39  
40   40  
41   41  
42   42  
43   43  
44   44  
45   45  
46   46  
47   47  
48   48  
49   49  
50   50  
51   51  
52   52  
53   53  
54   54  
55   55  
56   56  
57   57  
58   58  
59   59  
60   60  
61  bool echoVersion =3D false; 61  bool echoVersion =3D false;
62 62
63  bool echoHelp =3D false; 63  bool echoHelp =3D false;
64 64
65  bool mssdkpathSet =3D false; 65  bool mssdkpathSetByEnv =3D false;
    66
    67  bool mssdkpathSetByUser =3D false;
    68
    69  char mssdkEnvVar[500] =3D "\0";
66   70  
67 71
68  /** 72  /**
69   73  
70   74  
71   75  
72   76  
73   77  
74   78  
75   79  
76   80  
77   81  
78   82  
79   83  
80   84  
81   85  
82   86  
83   87  
84   88  
85   89  
86   90  
87   91  
88   92  
89   93  
90   94  
91   95  
92   96  
93   97  
94   98  
95   99  
96   100  
97   101  
98   102  
99   103  
100   104  
101  } 105  }
102   106  
103 107
    108  /*
    109
    110   */
    111
    112  {
    113
    114      {
    115
    116          {
    117
    118          }
    119
    120          {
    121
    122          }
    123      }
    124  }
    125  
    126
104  /** 127  /**
105 128
106   */ 129   */
107   130  
108   131  
109   132  
110   133  
111   134  
112   135  
113   136  
114   137  
115   138  
116   139  
117   140  
118   141  
119   142  
120   143  
121   144  
122   145  
123   146  
124   147  
125   148  
126   149  
127   150  
128   151  
129   152  
130   153  
131   154  
132   155  
133   156  
134   157  
135   158  
136   159  
137   160  
138   161  
139   162  
140   163  
141 164
142 165
143 166
144 167
145 168
146 169
    170
    171
    172
147          } 173          }
148 174
149 175
150   176  
151   177  
152   178  
153   179  
154   180  
155   181  
156   182  
157   183  
158   184  
159   185  
160   186  
161   187  
162   188  
163   189  
164   190  
165   191  
166   192  
167   193  
168   194  
169   195  
170   196  
171   197  
172   198  
173   199  
174   200  
175   201  
176   202  
177   203  
178   204  
179   205  
180   206  
181   207  
182   208  
183   209  
184   210  
185   211  
186   212  
187   213  
188   214  
189   215  
190   216  
191   217  
192   218  
193   219  
194   220  
195   221  
196   222  
197   223  
198   224  
199   225  
200   226  
201   227  
202   228  
203   229  
204   230  
205   231  
206   232  
207   233  
208   234  
209   235  
210   236  
211   237  
212   238  
213   239  
214   240  
215   241  
216   242  
217   243  
218   244  
219   245  
220   246  
221   247  
222   248  
223   249  
224   250  
225   251  
226   252  
227   253  
228   254  
229   255  
230   256  
231   257  
232   258  
233   259  
234   260  
235   261  
236   262  
237   263  
238   264  
239   265  
240   266  
241   267  
242   268  
243   269  
244   270  
245   271  
246   272  
247   273  
248   274  
249   275  
250   276  
251   277  
252   278  
253   279  
254   280  
255   281  
256   282  
257   283  
258   284  
259   285  
260   286  
261   287  
262   288  
263   289  
264   290  
265   291  
266   292  
267   293  
268   294  
269   295  
270   296  
271   297  
272   298  
273   299  
274   300  
275   301  
276   302  
277   303  
278   304  
279   305  
280   306  
281   307  
282   308  
283   309  
284   310  
285   311  
286   312  
287   313  
288   314  
289   315  
290   316  
291   317  
292   318  
293   319  
294   320  
295   321  
296   322  
297   323  
298   324  
299   325  
300   326  
301   327  
302   328  
303   329  
304   330  
305   331  
306   332  
307   333  
308   334  
309   335  
310   336  
311   337  
312   338  
313   339  
314   340  
315   341  
316   342  
317   343  
318   344  
319   345  
320   346  
321   347  
322   348  
323   349  
324   350  
325   351  
326   352  
327   353  
328   354  
329   355  
330   356  
331   357  
332   358  
333   359  
334   360  
335   361  
336   362  
337   363  
338   364  
339   365  
340   366  
341   367  
342   368  
343   369  
344   370  
345   371  
346   372  
347   373  
348   374  
349   375  
350   376  
351   377  
352   378  
353 379
354   380  
355 381
356 382          {
357 383
358 384
359 385
360 386
    387
    388
    389          }
    390
    391          {
    392
    393
    394
    395
    396
    397
    398
    399          }
361   400  
362      if (echoJavaCmd)  401
363      { 402      {
364   403  
365   404  
366   405  
367   406  
368   407  
369   408  
370   409  
371   410  
372   411  
373   412  
374   413  
375   414  
376   415  
377   416  
378   417  
379   418  
380   419  
381   420  
382 421
383 422
384      "\n" 423      "\n"
385 424
    425
    426
386      "\n" 427      "\n"
387 428
388    
389      "\n" 429      "\n"
390 430
391    
392    
393    
394 431
395      "\n" 432      "\n"
396      "Options include:\n" 433      "Options include:\n"
    434
    435
    436
    437
    438
    439
397 440
398 441
399 442
400   443  
401   444  
402   445  
403   446  
404   447  
405   448  
406   449  
407   450  
408   451  
409   452  
410   453  
411   454  
412   455  
413   456  
414   457  
415   458  
416   459  
417   460  
418   461  
419   462  
420 463
421 464
422 465
423 466
424 467
425 468
426 469
427 470
    471
428 472
429 473
430 474
431   475  
432   476  
433   477  
434 478
435 479
436      "\n" 480      "\n"
    481
    482
    483
    484
    485
    486
437      ); 487      );
438  } 488  }
439   489  
440   490  
441   491  
442   492  
443   493  
444   494  
445   495  
446   496  
447      ); 497      );
448  } 498  }
449   499  
    500  
450 501
451  /** 502  /**
452   * Program entry point. 503   * Program entry point.
453   504  
454   505  
455   506  
456   507  
457   508  
458   509  
459 510
460      } 511      }
461      initOpts(); 512      initOpts();
    513
    514
    515
    516
    517          {
    518
    519
    520          }
    521  
462      int iLeft =3D 1; 522
463 523
464      {    524      {   
465   525  
466   526  
467   527  
468   528  
469   529  
470   530  
471   531  
472   532  
473   533  
474   534  
475   535  
476   536  
477   537  
478   538  
479   539  
480   540  
481   541  
482   542  
483   543  
484   544  
485   545  
486   546  
487   547  
488   548  
489   549  
490   550  
491   551  
492   552  
493   553  
494   554  
495          } 555          }
496      } 556      }
497       557      
498      if (!mssdkpathSet) 558
499      { 559      {
500 560
501 561
------=_NextPart_000_0000_01C44F03.52A55680 Content-Type: text/css; charset="gb2312" Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/temp/codestriker.pl_files/codestriker.css TD.file { FONT-SIZE: medium; FONT-FAMILY: Helvetica, Arial; BACKGROUND-COLOR: = #cccccc } TD.line { FONT-SIZE: medium; FONT-FAMILY: Helvetica, Arial; BACKGROUND-COLOR: = #99cccc } TD.n { FONT-SIZE: smaller; FONT-FAMILY: Helvetica, Arial } TD.msn { FONT-SIZE: smaller; FONT-FAMILY: Courier } TD.a { FONT-SIZE: smaller; FONT-FAMILY: Helvetica, Arial; BACKGROUND-COLOR: = #aaffaa } TD.msa { FONT-SIZE: smaller; FONT-FAMILY: Courier; BACKGROUND-COLOR: #aaffaa } TD.af { BACKGROUND-COLOR: #aaffaa } TD.ab { FONT-SIZE: smaller; FONT-FAMILY: Helvetica, Arial; BACKGROUND-COLOR: = #cccccc } TD.msab { FONT-SIZE: smaller; FONT-FAMILY: Courier; BACKGROUND-COLOR: #cccccc } TD.r { FONT-SIZE: smaller; FONT-FAMILY: Helvetica, Arial; BACKGROUND-COLOR: = #ff9999 } TD.msr { FONT-SIZE: smaller; FONT-FAMILY: Courier; BACKGROUND-COLOR: #ff9999 } TD.rf { BACKGROUND-COLOR: #ff9999 } TD.rb { FONT-SIZE: smaller; FONT-FAMILY: Helvetica, Arial; BACKGROUND-COLOR: = #cccccc } TD.c { FONT-SIZE: smaller; FONT-FAMILY: Helvetica, Arial; BACKGROUND-COLOR: = #ffff77 } TD.msc { FONT-SIZE: smaller; FONT-FAMILY: Courier; BACKGROUND-COLOR: #ffff77 } TD.cf { BACKGROUND-COLOR: #ffff77 } TD.cb { FONT-SIZE: smaller; FONT-FAMILY: Helvetica, Arial; BACKGROUND-COLOR: = #eeee77 } TD.mscb { FONT-SIZE: smaller; FONT-FAMILY: Courier; BACKGROUND-COLOR: #eeee77 } SPAN.com { FONT-SIZE: smaller; COLOR: #ff0000; FONT-FAMILY: Helvetica, Arial } SPAN.nocom { FONT-SIZE: smaller; FONT-FAMILY: Helvetica, Arial } SPAN.msa { FONT-SIZE: medium; FONT-FAMILY: Courier, monospaced; BACKGROUND-COLOR: = #aaffaa } SPAN.msr { FONT-SIZE: medium; FONT-FAMILY: Courier, monospaced; BACKGROUND-COLOR: = #ff9999 } SPAN.msc { FONT-SIZE: medium; FONT-FAMILY: Courier, monospaced; BACKGROUND-COLOR: = #ffff77 } SPAN.ms { FONT-SIZE: medium; FONT-FAMILY: Courier, monospaced } SPAN.mscom { FONT-SIZE: medium; COLOR: #ff0000; FONT-FAMILY: Courier, monospaced } SPAN.msnocom { FONT-SIZE: medium; FONT-FAMILY: Courier, monospaced } SPAN.smscom { FONT-SIZE: smaller; COLOR: #ff0000; FONT-FAMILY: Courier, monospaced } SPAN.smsnocom { FONT-SIZE: smaller; FONT-FAMILY: Courier, monospaced } PRE.ms { FONT-SIZE: medium; FONT-FAMILY: Courier, monospaced } TR.tlh { FONT-FAMILY: Helvetica, Arial; BACKGROUND-COLOR: #aaffaa } TR.tl1 { FONT-FAMILY: Helvetica, Arial; BACKGROUND-COLOR: #cccccc } TR.tl2 { FONT-FAMILY: Helvetica, Arial; BACKGROUND-COLOR: #eeeeee } A.fid { COLOR: #777777; TEXT-DECORATION: none } TR.comments { FONT-FAMILY: Helvetica, Arial; BACKGROUND-COLOR: #aaffaa } TR.commenth { FONT-FAMILY: Helvetica, Arial; BACKGROUND-COLOR: #cccccc } TR.commentb { BACKGROUND-COLOR: #eeeeee } TD.commentb { BACKGROUND-COLOR: #eeeeee } TR.commentc { BACKGROUND-COLOR: #eeeeee } TR.tth { FONT-FAMILY: Helvetica, Arial; BACKGROUND-COLOR: #aaffaa } TR.tt0 { FONT-FAMILY: Helvetica, Arial; BACKGROUND-COLOR: #cccccc } TR.tt1 { FONT-FAMILY: Helvetica, Arial; BACKGROUND-COLOR: #eeeeee } TD.heading { FONT-SIZE: x-large; FONT-FAMILY: Helvetica, Arial; BACKGROUND-COLOR: = #000000; TEXT-ALIGN: center } A.heading { COLOR: #ffffff; TEXT-DECORATION: none } DIV.menu { FONT-FAMILY: Helvetica, Arial } TR.tab { FONT-FAMILY: Helvetica, Arial; BACKGROUND-COLOR: #aaffaa } TD.selected { BACKGROUND-COLOR: #aaffaa } TD.notselected { BACKGROUND-COLOR: #cccccc } TD.space { BACKGROUND-COLOR: #eeeeee } A.tab { TEXT-DECORATION: none } ------=_NextPart_000_0000_01C44F03.52A55680--