arrHitInfo=new Array("#%02d,99,1","#12,94,1","#day,99,1","#define,48,1,61,4","#import,61,2,99,2","#include,46,1,48,3,54,10,55,5,56,2,57,2,61,4,99,3","#pragma,86,3,53,1,61,1,99,1","%&gt,38,4","%.15e,99,1","%.16f,99,1","%02d,99,3","%04d,99,2","%2d,99,2","%,94,1","%appdata,101,1","%d,45,1,48,1,61,6,99,6","%f,99,2","%s,45,1,61,5,99,2","%systemroot,74,1","&#183,3,1","&egrave,2,2","&gt,43,1,33,7,34,2,35,1,38,1,48,2,51,2,57,1,58,3,60,2,61,11,66,5,68,1,88,2,92,2,94,17","&lt,43,2,33,20,34,3,35,3,38,5,44,2,86,13,48,6,54,8,55,4,56,1,57,1,58,5,60,4,61,4,65,1,66,13,68,2,71,2,72,4,84,1,88,1,94,42,99,3,101,2","00,1,1,9,1,21,1,22,1,23,1,24,1,25,1,26,1,27,1,28,1,30,1,106,1,94,2,104,1,105,1,107,1,108,1,109,1,110,1,111,1","0108398007,2,1,4,1,66,1","0,94,1","0x,98,2","0x0002,87,1","0x0003,87,1","0x0005,87,1","0x0006,87,1","0x0007,87,1","0x0008,87,1","0x000a,87,1","0x000b,87,1","0x000c,87,1","0x000d,87,1","0x000e,87,1","0x000f,87,1","0x0010,87,1","0x0021,87,1","0x0084,87,1","0x0085,87,1","0x01234567,58,1","0x0132,87,1","0x0133,87,1","0x0134,87,1","0x0135,87,1","0x0136,87,1","0x0137,87,1","0x0138,87,1","0x01e1,87,1","0x0200,87,2","0x0203,87,1","0x0204,87,1","0x0205,87,1","0x0206,87,1","0x0207,87,1","0x0208,87,1","0x0209,87,2","0x0214,87,1","0x0231,87,1","0x0409,79,1","0x07,55,4","0x201,87,1","0x202,87,1","0x2a,94,1","0x5a,98,1","0x72,98,1","0x85,98,1","0x99,98,1","0xa4b57300,55,2","0xb6,98,1","0xd6,98,1","0xdf92,98,1","0xe5,98,1","0xee,98,1","1&gt,86,2,49,2","1-&gt,86,1","1.0,38,1,66,1,79,1","1.1,79,1","10,30,1,86,5,106,1,48,3,55,2,57,1,61,1,68,3,71,2,84,2,79,1,89,1,94,16,97,4,104,1,105,1,107,1,108,1,109,1,110,1,111,1","10.0,89,1","10.3,89,2","100,30,1,106,1,47,1,48,1,54,2,57,2,90,1,94,3,104,1,105,1,107,1,108,1,109,1,110,1,111,1","1000,47,6,48,1,59,1,61,2,71,4,96,1","10000,59,1","101,4,1,8,1,29,1","1020,20,3","1024,75,1","102400,54,2","1048576,34,1","10737418240,55,1","10,94,1","11,30,1,86,3,106,1,61,1,71,2,97,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","11000,62,1,68,2","11004,68,1","12,7,4,30,1,86,3,106,1,94,7,96,4,97,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","12.0,79,1","120,96,2","123,86,2,94,6","1233,43,1","1234,43,1","123456l,94,2","123s,94,1","123ui,94,1","123ul,94,1","123us,94,1","1252,79,1","127.0.0.1,41,1","128,68,1,98,1","12-bit,55,1","13,4,1,6,4,29,1,30,1,86,4,106,1,55,2,97,3,104,1,105,1,107,1,108,1,109,1,110,1,111,1","133,86,1","14,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","15,30,1,106,1,94,2,104,1,105,1,107,1,108,1,109,1,110,1,111,1","16,30,1,106,1,94,3,104,1,105,1,107,1,108,1,109,1,110,1,111,1","16139,8,1,29,1","16-bit,55,1","17,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","18,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","19,30,1,106,1,89,1,96,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","191,86,1","1973,94,4","198.1.1.5,100,1","1999,71,1","12,94,1","2-&gt,86,1","2.0,11,1,49,4,65,2,79,1,88,1","2.0.4,91,1","2.5,89,1","2.8,79,1","2.9,94,1","2.9f,94,1","20,7,1,30,1,106,1,48,2,94,5,96,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","2000,81,2","2003,12,1,26,1,79,6","2005,22,1,26,1,32,1","2007,12,1,16,1,79,8,93,1,94,2,101,5","2008,7,1,10,2,21,2,22,2,23,1,24,1,25,1,26,2,27,1,28,1,32,3,39,7,106,1,51,1,53,1,54,1,57,1,63,1,66,1,79,1,85,1,89,1,104,2,105,1,107,1,108,1,109,1,110,1,111,1,112,2","2010,85,1","2048,90,1","21,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","22,30,1,106,1,96,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","222articolo,4,1,29,1","225,84,3","227,86,1","23,30,1,86,4,106,1,46,1,96,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","230.000,27,1","2345,99,1","24,4,1,30,1,106,1,46,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","25,30,1,40,1,41,2,106,1,61,1,65,3,94,2,104,1,105,1,107,1,108,1,109,1,110,1,111,1","25-100,61,1","255,53,1,84,6","256,61,3","26,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","27,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","28,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","29,30,1,106,1,96,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","2,94,1","2c,58,2","3.0,10,1,12,1,58,5,63,1,65,1,112,1","3.0.5.2,91,3","3.14159265,94,2","3.5,11,1,49,4,65,1,94,2","3.5f,94,2","3.6,79,2","3.9,58,1","3.x,79,1","30,30,1,106,1,96,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","3000,82,1,61,1","3033,100,1","31,30,1,106,1,94,2,104,1,105,1,107,1,108,1,109,1,110,1,111,1","32,30,1,106,1,58,1,68,2,104,1,105,1,107,1,108,1,109,1,110,1,111,1","32768,68,2","33,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","3389,100,1","34,30,1,106,1,53,1,96,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","35,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","35.99,94,1","35.99m,94,1","353,86,1","36,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","3600,34,1","3600000,61,1","37,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","38,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","39,30,1,86,3,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","4*sizeof,55,1","4.5,94,1","4.5f,94,1","4.93,94,1","4.93f,94,1","4.x,79,1","40,30,1,106,1,46,3,48,2,104,1,105,1,107,1,108,1,109,1,110,1,111,1","4000,57,4,84,2","41,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","42,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","43,30,1,86,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","44,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","45,21,4,30,1,106,1,96,3,99,1,104,9,105,1,107,1,108,1,109,1,110,1,111,1","46,23,4,30,1,106,9,104,1,105,1,107,1,108,1,109,1,110,1,111,1","47,24,4,30,1,106,1,104,1,105,1,107,9,108,1,109,1,110,1,111,1","4727,98,2","48,28,4,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,9","49,25,4,30,1,106,1,104,1,105,1,107,1,108,9,109,1,110,1,111,1","5.0,63,1","50,27,4,30,1,106,1,68,3,94,2,96,1,99,5,104,1,105,1,107,1,108,1,109,1,110,9,111,1","500,59,1","5000,44,4,87,1","51,22,4,30,1,106,1,104,1,105,9,107,1,108,1,109,1,110,1,111,1","512,55,9","52,9,4,30,9,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","53,26,4,30,1,106,1,104,1,105,1,107,1,108,1,109,9,110,1,111,1","54,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","55,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","56,30,1,106,1,96,2,104,1,105,1,107,1,108,1,109,1,110,1,111,1","57,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","58,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","59,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","6.0,39,3","60,30,1,34,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","61,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","62,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","63,30,1,106,1,55,9,104,1,105,1,107,1,108,1,109,1,110,1,111,1","64,30,1,106,1,58,1,96,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","65,30,1,106,1,94,6,96,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","66,30,1,106,1,96,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","67,30,1,106,1,96,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","675,4,2,29,2","68,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","69,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","69th,96,1","7.0,39,1","70,30,1,106,1,94,4,96,2,104,1,105,1,107,1,108,1,109,1,110,1,111,1","71,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","72,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","73,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","74,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","75,30,1,86,3,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","754,58,2","76,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","77,30,1,106,1,59,2,104,1,105,1,107,1,108,1,109,1,110,1,111,1","78,30,1,106,1,88,1,96,2,104,1,105,1,107,1,108,1,109,1,110,1,111,1","78.23m,88,1","7859872,99,1","79,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","80,30,1,106,1,61,3,96,2,104,1,105,1,107,1,108,1,109,1,110,1,111,1","81,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","82,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","83,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","84,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","85,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","85d6-72e5eeb6995a,98,1","86,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","87,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","88,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","89,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","90,30,1,106,1,48,3,94,2,104,1,105,1,107,1,108,1,109,1,110,1,111,1","900,47,3","91,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","92,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","93,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","94,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","95,30,1,106,1,55,2,104,1,105,1,107,1,108,1,109,1,110,1,111,1","96,4,2,29,2,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","97,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","98,30,1,86,1,106,1,55,2,104,1,105,1,107,1,108,1,109,1,110,1,111,1","99,30,1,106,1,104,1,105,1,107,1,108,1,109,1,110,1,111,1","999,71,1",",31,4,34,1,48,3,57,3,88,2,94,316,98,1,99,1,103,1","&gt,94,1",",34,5,48,2,57,1,94,44",",48,1,94,42",",34,3,57,1,94,3",",48,2,94,13",",48,1,94,6",",94,2",",48,1,88,1",",48,1",",69,1",",94,1",",88,1",",94,1",",88,1","c,47,1,92,1","competition,94,1","define,57,1","double,94,1","ex,94,1","footballgame,94,2","in,94,1","is,57,1","max_students,94,1","md5,69,1","obviously,57,1","perform,94,1","prints,94,1","read,94,1","single,94,1","status,94,1","the,69,1","then,94,1","tutorial,57,1","x,94,1","a.tostring,94,1",",22,1,23,1,24,1,25,1,26,2","€,9,1,21,1,22,1,23,1,24,1,25,1,26,1,27,1,28,1","………,57,2","“core”,57,1","abilitation,81,1","able,11,1,86,2,51,1,52,4,67,1","aborted,34,1","abruptly,82,2","absent,61,1","absolute,10,1,32,2,112,1","abstract,12,1,62,15,63,1,64,1","abstractclasses.html,62,4","acart.mdb,35,1,93,1","accadimento,24,1","accdb,21,1","accedendo,8,1","accedere,3,1,8,2","accept,34,1,61,2,88,1,94,2","acceptchanges,85,2","accepted,61,1","accepting,68,1","accepts,68,1","acces,82,1","access,7,1,10,1,12,1,14,1,21,3,22,1,23,1,24,1,25,1,26,1,27,1,28,1,31,3,35,5,106,1,58,1,61,6,66,1,79,10,81,1,93,2,99,3,104,2,105,1,107,1,108,1,109,1,110,1,111,1,112,1","accessed,92,1","accessibility,94,2","accessible,94,2","accessing,58,1,81,2","accesso,4,1,29,1","accettable,69,1","accettare,8,1","accettate,8,3","accompany,51,1","accomplished,84,1","account,61,1","accumulate,81,1","accustomed,49,1","achieve,69,1","achitecture,37,1","acknowledged,51,1","acquires,57,1","acquisizioni,23,1","acquistare,21,1","acquisti,8,1","across,37,1,58,1","action,94,4,99,4","action.start,94,2","action.stop,94,2","actions,90,1","active,40,5","activeconnection,99,1","activex,99,1","activities,1,1,37,1","activity,37,1","actually,78,1,100,1,101,1","ad,4,2,8,1,9,1,28,1,29,2,41,4","ad1,41,4","ad2,41,4","ada,73,2,75,1","ada.fill,73,2,75,1","adadestin,85,2","adadestin.fill,85,1","adadestin.update,85,1","adagio,20,1","adaorigin,85,1","adaorigin.fill,85,1","adcmdtable,99,1","adcmdtext,99,2","adconnectunspecified,99,1","add,12,1,33,3,35,1,36,2,38,2,39,2,86,4,51,2,57,7,61,3,66,9,78,1,79,3,101,1","addattachment,61,2","added,51,3,57,2,85,1,93,1","addhandler,94,1","adding,34,1,57,1,100,1","addition,37,1","additional,45,1,61,4","addprod.asp,30,8,105,8,106,8,104,8,107,8,108,8,109,8,110,8,111,8","addreess,58,1","address,11,1,57,3,58,7,102,2","addresses,37,1,58,2,61,1","addressof,94,2","adds,42,1","aderire,8,1","adlockoptimistic,99,1","administration,39,2","administrator,7,1,21,2,22,1,23,1,24,1,25,1,26,1,27,1,28,1,105,1,106,1,104,2,107,1,108,1,109,1,110,1,111,1","administrators,39,1","admit,88,1","admitting,96,1","ado,15,1,61,1,79,1,93,1,99,14","ado.exe,99,1","ado.net,10,1,35,2,85,1,112,1","adocom.html,99,4","adodb.connection,93,1","adopenkeyset,99,1","adox,12,1,79,2,93,1","adox.catalog,93,1","adox.catalogclass,79,2","adpersistxml,99,1","advantage,79,1","advent,88,1","advice,89,1","advisable,92,1","advise,35,1","affecting,37,1,96,1","affidabile,2,1","affidabilit&agrave,2,1","affidabilit,7,1","afrom,41,4","against,31,1,73,1,102,1","age,94,11","agevole,21,1,22,1","aggiornamenti,4,1,8,1","aggiornamento,8,1","aggiornare,8,1","aggiornato,9,1","aggiungere,22,1","aggiunta,22,1","aggiuntivo,22,1","aggregation,73,1","agile,37,1","agli,8,1,26,1","agree,58,1","ai,4,6,27,1,29,2","aid,61,1,71,1","aider,53,6,84,1","aider.waitone,84,1","aidertask,53,1","al,2,1,4,3,8,4,22,1,29,1","alert,102,1","alfa,46,13,49,2,53,4,57,3,62,1,71,2,72,2,79,3,88,3,96,5,98,1","alfa-&gt,49,4","alfa.createdatabase,79,1","alfa.getbuffer,71,1","alfa.length,71,1","alfa.length.tostring,71,1","alfa.listen,62,1","alfa.read,69,1","alfa.readbyte,71,2","alfa.seek,71,2","alfa.write,71,2","algorithm,69,1","algoritmi,24,1","alice,41,3","align,85,1","alignement,85,3","alla,2,1,4,2,8,3,26,1,28,1,29,1","alldone,62,1","alldoneauto,81,2","alldoneauto.set,81,1","alldoneauto.waitone,81,1","alldonemanual,81,2","alldonemanual.reset,81,1","alldonemanual.set,81,1","alldonemanual.waitone,81,1","alle,8,1","allegro,20,2","allo,2,1,8,1","alloc,44,1","allocate,44,1,69,1,47,4,68,1,96,4","allocated,47,2,61,1,68,1","allocation,49,1,68,1,96,1","allow,14,1,40,1,58,2,61,1,72,1,93,10","allowed,43,1","allowing,61,1,81,1","allows,35,1,36,1,37,1,51,1,61,2,84,1,87,1,98,1","almost,69,2,103,1","along,99,1","already,45,2","alternatively,85,1","although,84,1","altre,6,1,7,1,8,1,30,1,105,1,106,1,104,1,107,1,108,1,109,1,110,1,111,1","altri,8,2","always,43,1,34,1,61,3,103,1","amazingly,58,1","ambiente,21,1,26,1","ambienti,26,1","amministrazione,28,1","among,10,1,43,6,57,1,112,1","amount,34,1,59,1,61,1,68,1,94,2","analisi,4,1,29,1","analyze,51,1","anche,9,1,22,1,24,1,27,1,28,1","and,94,1","andreference,94,2","andalso,94,2","anesthetic,103,1","anni,7,1","annoying,40,1,101,1","anonymous,10,1,90,3,112,1","another,31,1,69,1,45,1,47,1,57,1,58,9,84,1,81,2","answer,58,1","answers,1,1","antica,24,1","antivirus,10,1,40,3,112,1","anywhere,45,1","apartment,61,2","api,92,1,93,1","api’s,92,1","app,51,4,61,1,66,4,79,1","app.config,66,4","apparent,78,1","appearance,12,1,50,1,84,4,87,1","append,45,2,94,1","appending,45,1","application,10,1,11,1,12,1,13,1,43,3,35,1,69,4,82,2,51,26,55,1,56,2,57,7,61,5,66,6,90,4,95,1,98,1,99,2,112,1","application.addmessagefilter,87,1","application.executablepath,66,1","application.exit,82,1","application.lock,43,5","application.removemessagefilter,87,1","application.run,82,1","application.startuppath,73,2,79,10,85,2,95,1","application.unlock,43,1","applicationname.exe.config,66,3","applications,80,4","applicativo,24,1,27,1","applicazioni,22,1,27,2","apply,75,1,95,1","appositamente,23,1","approach,82,1,89,1","approfondire,24,1","appropriate,37,1,42,1,93,1,97,1","approximately,34,1","apps,66,1","appsettings,10,1,33,5,66,2,112,1","appsettings&gt,33,2,66,2","aprire,21,1,22,1","ar,90,4","ar.asyncstate,90,2","arbitrary,58,1","architecture,10,1,37,9,112,1","architectures,37,1","archiviazione,24,1","arco,4,1","area,1,2,63,7,87,1","aren,103,1","arg,51,1","argc,46,1,54,2,55,1,56,1,57,1,61,1,99,1","argomenti,27,1","args,51,6,68,1,72,1,75,1,79,1,90,3,94,4","args.length,94,2","argument,51,1,58,1,61,1,94,4","argumentnullexception,88,1","arguments,51,1,61,5,90,1,94,3","argv,46,1,54,2,55,1,56,1,57,1,61,5,99,1","arithmetic,94,2","array,14,1,44,1,69,5,86,5,45,1,46,1,48,4,49,4,51,4,60,6,61,8,68,4,71,1,72,1,94,5,96,14","array&lt,49,2,51,2","array.,94,1","array.copy,94,1","arrays,94,1,96,2","articoli,28,1","aruba,41,4","arubacart,35,1","asci,60,1","ascii,11,1,60,4","ascoltarvi,2,1","asenumerable,73,2","asinclistener,62,3","ask,99,1","asking,70,1","asp.net,1,1,10,8,43,5,31,5,32,4,33,6,34,1,35,1,36,2,37,1,38,6,40,4,42,5,112,8","aspnet.html,10,4,112,4","aspnet_regiis.exe,10,1,112,1","aspnet0.html,32,4","aspnetappsettings.html,33,4","aspnetaut.html,31,4","aspnetconn.html,35,4","assemblies,103,1","assembly,94,3","assignment,94,2","assistenza,1,1,6,3,7,1,9,2,21,1,22,1,23,1,24,1,25,1,26,1,27,1,28,1,30,2,105,1,106,1,104,1,107,1,108,1,109,1,110,1,111,1","assistenza@dmm888.com,33,1,41,1","associated,33,1,86,2,51,1,74,1","association,17,1,103,5","associations,11,1,51,8","assume,58,2,67,1","assumed,34,1","assumes,58,1","assuming,58,1,76,1","assumption,58,1","assures,43,1","asterr&agrave,8,1","asynccallback,90,2","asynchronous,90,2","asynchronousftpuploader,90,1","asynchronously,90,2","asyncronous,12,1,84,7","atl,57,2","attached,67,1","attachment,41,5","attachments,61,1","attivit&agrave,4,2,8,4,29,2","attraverso,8,1,27,2","attribute,34,1","attributes,61,1","audio,25,2,44,4","auditing,37,1","aumentare,27,1","authenticated,31,4","authentication,10,2,31,7,33,2,69,1,112,2","authentication&gt,33,1","authority,31,1","authorization,10,1,31,8,112,1","authorized,31,2","auto,61,2,81,2","autoaggiornare,28,1","autoeventwireup,10,1,42,10,112,1","autoeventwireup.html,42,4","automanualmulti.html,81,4","automated,61,1","automatic,61,2","automatically,42,2,44,1,58,1,71,1,81,4","autoresetevent,12,1,84,1,81,11","autorizzo,4,1,29,1","autoscaledimensions,86,1","autoscalemode,86,2","av,10,1,40,4,112,1","available,34,1,42,2,52,1","avast,10,1,112,1","avere,4,1,8,1,9,1,29,1","avete,8,1","avoid,40,1,48,1,58,1,65,1,83,1,84,1,81,1,87,1","avrete,9,1","avvalervi,8,1","aware,10,1,51,1,79,1,93,1,112,1","awareness,32,1","a-z,102,1","azienda,2,1,4,1,29,1","aziendale,2,1","b.equals,84,2","bach,20,3","backcolor,86,1,50,1,84,1","background,82,1,84,2","backslash,94,1","backup,11,1,54,4,90,1","bad,103,1","banker,94,1","bar,58,9","barney,94,2","barptr,58,4","base,10,1,13,1,42,1,58,1,62,2,63,3,96,1,112,1","base.dispose,82,1","baseclass,94,1","base-classes,62,1","based,37,1,86,1","based_code,44,2","baselistener,62,3","basic,12,1,69,4,45,5,61,1,72,5,78,1,81,1,97,4,99,1,102,1","basic.net,1,1,14,5,92,3,93,2,94,1,95,1,96,2,97,1","basics,12,1,69,1","basis,36,4,61,1,72,1","basta,3,2","battery-power,101,1","bc,94,1","belisted,94,1","bear,84,1,101,1","bearing,38,1,71,1","because,34,1,42,1,82,1,46,1,49,1,51,2,54,1,57,1,58,3,61,3,66,1,68,1,87,1,89,1,92,1,95,1,96,1,101,1,103,1","become,34,1,53,1,85,1","becomes,82,1,48,1,61,1,81,2","beep,94,1","begin,61,2","begingetresponse,90,1","begininvoke,84,1","beginning,38,1,45,1,58,1,99,1","beginthread,48,4","belong,12,1,86,5","belongs,86,1,79,1","ben,27,1","benvenuti,4,1","best,1,1,2,1,57,1,61,1,66,1,74,1,99,1","beta,53,4,79,2,85,2,88,3","beta.close,79,1","beta.itemarray,85,1","better,35,1,37,1,52,1,87,1,89,1,101,1","between,10,1,12,1,14,1,31,5,48,1,58,1,61,1,62,1,70,1,78,1,81,5,88,4,92,2,94,5,112,1","beware,58,1","billing,37,1","binary,11,1,45,4,49,5,58,1,59,1,61,3,71,1,75,3,94,4","binaryreader,94,3","binarywriter,94,3","binay,75,1","bind,73,1","binreader,94,2","binreader.close,94,2","binreader.readint32,94,2","binreader.readstring,94,2","binwriter,94,2","binwriter.close,94,2","binwriter.write,94,4","birthday,94,4","bisons,94,10","bit,35,1,58,2,98,1","bitconverter.toint64,68,1","bitmap,51,1","bitmaps,51,1","bits,58,9","bitshift,58,1","bitwise,55,1,58,1,94,2","blank,43,1","block,61,1,90,1","blocked,81,3","blocker,87,3","blocks,81,1,87,2","blu,36,1","blue,94,2","bob,94,4","bobby,94,1","bobby,94,1","body,41,6,46,1","bolle,85,2","book,96,5","books,96,2","bool,82,2,48,3,55,1,57,1,61,5,68,1,84,1,85,2,87,1,94,2","bool&gt,88,1","boolean,94,2","boolean&gt,101,1","bored,87,1","both,41,1,45,2,58,4,94,3","bother,44,1","bound,81,1","bounds,50,2","boundtable,73,2","box,69,1,84,1,96,3","boxes,86,1","braces,98,1","brackets,61,1","break,60,4,61,3,85,1,94,8","breaking,94,2","breturn,61,2","brevetto,27,1","brief,14,1,96,4","brings,59,1","brokers,37,1","browser,8,1,34,1","brushes,50,1","bstr_t,99,8","btnblocker_click,87,1","btnjob1,86,4","btnjob1-&gt,86,7","btnjob1_click,86,6","btnjob2,86,4","btnjob2-&gt,86,7","btnjob2_click,86,5","btnjob3,86,4","btnjob3-&gt,86,7","btnjob3_click,86,5","btntask,81,1","btntaskauto,82,2,81,1","btntaskauto.enabled,82,2,81,2","btntaskauto_click,82,1,81,1","btntaskmanual,82,1,81,2","btntaskmanual.enabled,81,2","btntaskmanual_click,81,1","btriphonems,44,2","buf,69,3,45,1,99,2","bufbyte,45,9,59,1","bufer,47,2","buffer,45,2,47,22,54,12,59,8,61,3,68,2,90,3,94,7,99,2","buffer.append,94,1","buffer.insert,94,1","buffer.replace,94,1","bufferbefore,59,6","bufferdest,47,6","bufferinflatedeflate.html,59,4","bufferlength,90,3","bufshort,45,5,59,1","bufsound,44,1","buftemp,45,1","build,43,1,57,1,61,1,79,1,91,1","building,10,1,35,5,57,2,112,1","builds,81,1,99,1","built,10,1,11,1,39,1,51,1,53,4,112,1","built-in,94,1","bunch,11,1,53,4","burlandodiego,41,1","burlandodiego@alice.it,41,3","bus,37,1","business,37,3","button,82,1,86,11,81,4,87,3,94,5","button4,86,4","button4-&gt,86,7","button4_click,86,3","button,94,1","buttonautowork,81,3","buttonmanualwork,81,3","buttons,81,1,86,4","bwv,20,3","byref,94,2","byte,44,2,69,9,49,3,55,1,57,4,58,4,59,5,67,1,68,7,71,4,90,2,94,5","byte-by-byte,58,1","bytes,11,1,44,1,45,1,47,1,54,2,58,29,59,2,71,3,90,1,99,3","bytetohex,58,2","byval,94,13","c#.net,96,1","c#type,94,1","c.a.p,4,1","c.area,63,1","c.f,29,1","c.field&lt,73,4,75,3","c.pronounced,75,1","c.written,75,1","c9e37c15,98,2","c,94,1","cset,94,1","calculate,12,1,69,3,84,4","calculates,69,1","calculating,60,2","calculation,84,1","calculations,48,1","calculus,69,1","call,12,1,57,6,58,1,61,7,84,6,81,7,90,2","callback,61,1","called,58,1,61,3,62,2,63,2,74,1,78,1,85,1","calling,43,1,57,5,61,3,84,1,78,1,81,5,94,2","calls,61,5,84,1,81,1","campi,21,1,29,1","campo,27,2","cancellazione,4,1,29,1","cancelletto,81,1","cannot,61,1,62,1,63,2,64,2,103,2","canvas,51,1","cap,29,1","capability,47,1,51,1,52,1","caps,75,1,85,1","care,85,1","careful,89,1","carefully,79,1","carriage,14,1,97,2","carriage-return,94,1","carta,8,1","case,43,1,34,5,35,1,41,5,52,1,57,1,58,2,59,1,61,2,63,1,67,1,79,1,86,1,93,1,94,11,96,1","cases,57,1,58,1,62,1","cast,82,1,45,1,58,19,59,1,72,1,81,1","casted,58,3,72,1","casting,11,2,46,7,58,32,83,1","casting.html,58,4","cat,79,2,93,2","cat.activeconnection,93,1","cat.create,79,1","cat.tables,93,1","cat.txt,67,2","catalog,99,1","catch,41,2,82,1,61,1,90,2,94,4,99,1","catcode,6,4,7,4","categorie,6,1,7,1,30,1,105,1,106,1,104,1,107,1,108,1,109,1,110,1,111,1","categories,9,1,21,1,22,1,23,1,24,1,25,1,26,1,27,1,28,1,58,1","category,61,1","category.asp,6,4,7,4","cause,58,2","causes,58,5,61,1","causing,84,1,81,1","ccs,56,2","cdecl,57,3","cdo,61,4","cdobasic,61,1","cdohigh,61,2","cdoimportance,61,1","cdolow,61,1","cdonormal,61,1","cdoprioritynonurgent,61,1","cdoprioritynormal,61,1","cdopriorityurgent,61,1","cdosendpassword,61,1","cdosendusername,61,1","cdosendusingmethod,61,1","cdosendusingport,61,1","cdosmtpauthenticate,61,1","cdosmtpconnectiontimeout,61,1","cdosmtpserver,61,1","cdosmtpserverport,61,1","cdosys.dll&gt,61,1","cdourlgetlatestversion,61,1","cdourlproxybypass,61,1","cdourlproxyserver,61,1","cell,12,1,76,5","cells,76,3","cengine,57,1","centrino,101,3","centro,4,1","certain,34,1,57,1,101,1","certainly,51,1","cfile,11,1,44,15","cfiledialog,44,3","chance,70,1","change,11,1,50,6,57,1,58,11,61,4,86,2,100,1","changed,34,1,63,1","changes,37,1,58,3,66,1,85,1","changeserviceconfig2,61,2","changetype,88,3","changing,58,1","char,44,2,45,2,46,5,47,8,49,2,53,2,54,4,58,10,59,9,60,21,94,11,99,5","character,45,1,58,2,94,1,96,3,97,2,99,1","characters,96,1","charge,51,1","charptr,58,3","chars,94,2","chartobreakitup,94,1","che,3,1,4,1,8,9,21,1,24,1,27,2,28,1","check,40,1,69,1,48,3,58,1,61,1,75,2,85,2,102,1","checked,40,1,63,1,103,1","checking,48,1","checks,48,1","chiamateci,2,1","chieder&agrave,8,1","chiederne,4,1,29,1","chiedervi,8,1","chiedete,4,4,9,1","chiediamo,3,1","chipsets,101,1","chiudere,22,1","choices,94,1","choose,36,1,42,1,51,1,57,3","choosing,51,1","chops,58,1","chose,35,1,99,1","chosen,44,2,51,1,84,1,103,1","chr,94,1,97,11","chunk,11,2,44,6,71,5","chunks,44,4","cint,94,1","circle,63,4","cited,57,1","citt&agrave,4,1,29,1","clarify,57,1","class,10,1,11,1,12,2,36,6,41,5,42,2,82,1,46,2,51,3,53,10,57,2,58,2,62,9,63,8,64,5,65,2,67,6,68,4,75,4,77,5,79,1,81,2,85,6,86,4,87,4,88,1,90,2,94,13,98,3,112,1","classes,11,1,12,2,41,1,46,1,53,5,62,10,63,1,64,4,94,1,98,1","clean,45,1,65,1,86,1","cleanup,46,1,61,3","clear,71,1,92,1,99,1","clicked,94,2","clicking,51,2,57,1","client,34,1,36,3,40,1,57,3,67,2,68,2,78,1,87,1,91,2,100,1","cliente,29,1","clienti,28,1","clients,40,4","clientsize,86,1","close,35,1,44,1,82,1,49,1,58,1,59,1,90,1,99,2","closed,82,1,81,1","closehandle,54,4,55,1,59,2","closes,81,2","closeservicehandle,61,8","clr,61,1","clsid,15,1,98,13","clsid.html,98,4","cm,99,2","cmd,99,1","cmd-&gt,99,5","cmd.createinstance,99,1","cmp,85,1","cmp.equals,85,1","cn,73,4,75,2,99,5","cndest,85,2","cnn,93,3","cnn.open,93,1","cnnoracle,66,1","cnnsql,66,1","cnorig,85,2","cns,73,4,75,2,85,2","cns1,85,2","cobnsider,86,1","cocreateguid,98,2","code,1,2,11,3,12,1,43,5,33,1,34,1,35,1,38,2,41,1,42,6,44,1,69,2,45,1,49,1,51,1,52,6,53,2,54,2,56,1,58,4,60,1,61,17,62,2,65,4,66,3,70,1,84,1,75,1,78,1,79,1,85,3,86,7,87,2,89,1,91,2,92,1,93,6,94,2,95,1,99,2","code-behind,10,1,42,1,112,1","codice,8,1,26,1","coding,1,1","cognome,4,1,29,1","coincide,57,1","coinit_multithreaded,61,2","coinit_speed_over_memory,61,2","coinitialize,61,3,99,1","coinitializeex,61,4","collect,39,1,76,1","collection,37,1,49,1,72,2,79,1,94,2","collections,86,1","collegamento,22,1","color,11,1,50,7,84,1,86,1,94,1","color.fromargb,84,2","color.gray,86,1","color,94,1","colors,87,1","cols,94,1","cols-1,94,1","column,96,2,97,1","com,1,1,15,5,57,1,61,2,79,8,98,2,99,3","com_error,61,1,99,1","combination,55,1","combinations,95,1","combined,97,1","combobox,50,1","comdcomblog.html,15,4","come,4,1,8,1,21,1,22,1,26,1,27,1,29,1,81,1","comes,62,1,87,1","coming,58,1,89,1","command,36,1,51,5,61,3,90,1,94,2,99,6","command-line,61,2","commandlinearraycreatedinsidetheclass,51,1","commandptr,99,1","commands,94,1","commandtext,99,2","comments,94,3","comments&lt,94,1","committing,89,1","common,47,1,48,1,51,1,58,2,61,2,89,1,99,1","communicate,37,1","communication,37,1,75,4","compact,79,1","compare,12,1,85,4","compared,69,1,89,1","compareto,94,2","comparing,12,1,83,4","comparison,94,4","compatibile,23,1,26,1","compatibility,39,1","compatible,58,1","compattare,21,1","competente,2,1","competition,94,1","compilare,4,1","compilate,29,1","compilation,33,1,66,2","compilation&gt,33,1","compilazione,8,1","compile,13,1,57,2,58,1,61,1,62,1,64,1,66,1,91,1","compiled,61,2","compilelinux0.html,91,4","compiler,58,3,86,1,99,1","compilers,58,1","compiling,99,1","compiuti,7,1","completa,22,1","completamente,23,1,26,1","completare,8,1","complete,12,1,61,2,84,5,90,2,92,1","completed,61,1,90,2","completely,1,1,34,1,58,2","completes,54,4,57,1,90,1","complex,61,1,84,1,90,1","complexity,57,1","componente,22,1,26,1","componentmodel,86,2","components,82,2,86,3","components.dispose,82,1","compsci,94,2","computer,61,2","computing,12,1,69,1","comune,4,1","comuni,99,1","comunicazione,4,2,27,1,29,2","comunicazioni,22,1","con,8,1,9,1,23,2,24,1,26,1","concatenate,67,1,97,1","concatenation,94,4","concept,63,1","conclusions,57,1","concrete,62,1","config,34,4,41,1,61,1,66,1","config.appsettings.settings,66,1","config.appsettings.settings.add,66,1","config.connectionstrings.connectionstrings,66,1","config.save,66,1","configsections&gt,66,2","configuration,33,1,34,3,61,3,66,5,100,1","configuration&gt,33,2,66,2","configurationmanager.appsettings,66,1","configurationmanager.connectionstrings,66,2","configurationmanager.openexeconfiguration,66,1","configure,10,1,39,6,41,1,91,3,112,1","configured,39,3","confirmed,88,1","conformity,75,2","conio.h&gt,54,2,55,1","conn,99,2","conn-&gt,99,2","conn.createinstance,99,1","connect,67,1,99,1,100,1","connecting,37,1","connection,10,1,16,1,35,11,66,2,68,1,99,3,112,1","connection.udl,35,1","connectionptr,99,1","connections,68,2,84,1,99,1,100,5","connectionstring,35,1,66,3","connectionstrings,33,1","connectionstrings&gt,35,2,66,2","connectionstringsettings,66,2","connessioni,26,3","connstrsettings,66,1","connstrsettings.connectionstring,66,1","conoscenza,24,1","conoscere,4,1","consapevoli,8,1","consentirvi,8,1","consider,58,3,89,1","consideration,10,1,112,1","considered,31,1","consigli,9,1","consigliarvi,2,1","consiste,8,1","console,39,2,55,1,56,2,57,3,61,1,90,1,94,1","console.,48,1","console.read,94,2","console.readline,63,1,68,1,94,4","console.write,94,4","console.writeline,82,1,63,3,67,1,68,2,72,5,75,4,79,1,87,2,90,4,94,51","const,58,2,63,1,87,41,90,1,94,4","constant,33,2,96,1,97,1","constants,14,1,87,1,94,2,97,4","constness,58,2","construct,94,1","construction,62,1,92,1","constructor,42,1,46,2,90,1,94,2,96,1","constructors,94,1","consulenza,2,1,4,4","consumers,37,1","consuming,40,1,82,4,51,1,84,2,87,2","contain,59,1,62,1","container,33,1,44,1,57,1,86,1,98,1","contains,35,1,44,1,51,3,61,1,62,1,72,1,84,1,95,1,98,1,99,3,102,1","contatto,8,1","content,12,1,44,1,69,3,45,5,46,1,47,4,48,1,49,2,51,1,54,2,57,2,59,1,60,4,65,1,71,2,75,2,76,4,96,2","contents,58,1,86,1,90,2","contenuti,8,1","contenuto,21,1,27,1","context,85,1","context.response.tostring,42,1","contiene,27,1","contigue,22,1","continua,2,1","continue,1,1,57,1,94,4","continues,61,1","contoso.com,90,1","contributo,27,1","control,12,1,39,1,47,1,50,2,57,2,61,9,84,1,76,1,81,4,86,2,90,1,100,1","controlautobutton,81,2","controlautobutton.start,81,1","controlmanualbutton,81,2","controlmanualbutton.start,81,1","controls,10,2,11,1,12,3,32,2,42,1,82,5,50,5,51,2,61,3,81,1,86,8,112,2","controls-&gt,86,4","controlservice,61,2","convention,42,1,58,1","conventional,58,1","conversion,88,5,94,2,99,1","conversiontype,88,6","conversiontype.getgenerictypedefinition,88,1","conversiontype.isgenerictype,88,1","convert,58,4,73,1","convert.changetype,12,1,88,3","convert.tochar,94,2","convert.toint32,94,1","converted,58,1","converting,58,1","cookie,8,2","cookies,8,1","coordinating,37,1","copied,47,3,48,1","copies,47,1","copy,39,1,47,3,54,1,60,6,75,1,90,1,94,1","copying,11,1","corba,37,1","core,35,1,57,1,61,5","corollary,64,1","correct,10,1,38,1,42,1,68,1,81,1,89,1,94,2,112,1","corrected,59,1","correctly,39,1,88,1,90,1","corresponding,58,1,88,1","corresponds,86,1","corretta,27,1","cortesia,3,1","cos&igrave,4,1,8,1,29,1","costing,101,1","costose,21,1","costruzione,5,1,23,1","could,35,1,37,1,69,1,82,1,47,1,57,1,58,1,66,1,84,1,86,1,87,2,90,1,101,2","couninitialize,61,2,99,1","count,48,3,70,1,90,3,99,3","count.lval,99,1","counter,75,4","counterparty,96,1","country,79,1","course,42,1,57,1,58,2","cout,58,1","cover,77,1,85,1","covers,92,1","cp,79,1","cpp,36,1,57,1","cppmultipleinerit.html,53,4","cppnetbinreading.html,49,4","cppwindows0.html,11,4","cppwindows1.html,45,4","cppwindows2.html,44,4","cppwindows3.html,46,4","cpu,58,1,101,1","creare,21,1,25,1,26,1","create,11,1,12,1,35,2,36,2,44,2,45,2,46,1,51,3,54,1,55,7,56,1,57,4,58,2,61,3,67,2,68,6,71,1,73,1,79,7,81,1,90,2,94,1,98,1,99,2,101,1","create_always,54,1","create_disk,55,3","created,36,2,39,1,45,2,46,2,51,2,57,1,66,1,79,1,81,1,99,1","createevent,61,1","createfile,11,1,54,10,55,1,59,2","createfileforvolumes.html,54,4","createfilemapping,59,2","createobject,93,3","createprocess,61,2","creates,58,2,61,2,79,1,86,1,94,1","createservice,61,2","createthread,61,1","creating,61,1,68,1,78,1","creation,11,1,43,1,57,1,61,3,81,2,86,1,99,1","creazione,2,1,27,1","cred,41,3","credential,41,1,90,2","credentials,12,1,31,4,41,1,67,2,74,7","crere,23,1","cri,48,11","cript,12,1","criptoservice.html,77,4","criptoserviceprovider,12,1,77,5","critical,11,1,48,6","critical_section,48,1","critical_section,48,1","criticalsection.html,48,4","cross,12,1,81,5,84,2,80,6","crossthread,80,1","cross-thread,81,1","crossthread.html,80,4","crt,45,1","crucial,31,1,82,1,51,1","cs,36,1","csharpblog.html,12,4","csharpvsvbnet.html,94,4","cstring,44,1","ctrl,86,2","ctrl-&gt,86,3","ctrl.backcolor,86,1","ctrl.invoke,86,1","ctrl.tabindex,86,1","ctype,94,2","cuncurr,43,1","current,36,1,61,4,66,1,90,1","currentcontrolset,100,1","currently,58,1,70,1,74,2,89,1","currentuserloggedname,74,1","currentversion,103,1","customerrors,33,1","custs,73,3,75,2","custs.copytodatatable&lt,73,1","custs.count,75,1","cycle,44,1","cycles,101,1","cylinder,63,4","d9ae78d9-9dc6-4b38-9fa6-2c745a175aed&amp,79,1","da,4,1,8,3,23,1,25,2,27,2,28,1,29,1","daddress1,93,1","daddress2,93,1","dagli,8,1,24,1","daily,1,1","dal,8,2,27,1","dalla,8,1,24,1","dao,12,1,79,5,93,1","dao.dbengine,79,2","dar&agrave,4,1","data,43,9,33,1,34,1,35,1,37,1,45,2,48,5,53,1,54,1,55,1,58,7,59,4,60,2,61,2,68,6,71,1,72,2,73,3,75,5,79,1,85,5,86,1,93,1,94,4,99,5","database,12,1,14,1,21,2,27,1,35,3,69,2,61,8,79,4,85,1,93,1,99,5","databases,79,1","databind,42,1","datacolomns,83,1","datacolumn,12,1,43,2,83,5","datacontract,75,2","datacontractattribute,75,1","datacontractserializer,75,5","datagrid,12,1,70,8","datagridview,12,1,73,1,76,6","datagridview1.datasource,73,1,85,1","datagridviewcell.html,76,4","datagridviewcelleventargs,76,1","datamember,75,3","datarow,43,2,83,1,85,4","datarow&gt,73,3,85,2","datarowcomparer,12,1,85,5","datarowcomparer.default.equals,85,1","datarowcomparer.default.gethashcode,85,1","datarowcomparer.html,85,4","datarowcomparerx&lt,85,3","datarowstate.added,85,1","datas,75,3","dataset,12,1,73,12,85,4","datasource,70,1,73,1","datatable,10,1,43,6,73,5,75,3,85,2,112,1","datatables,12,1,85,5","dataviemanager,70,1","date,4,1,94,2,99,1","datetime,82,1,94,4,99,1","datetime.maxvalue,85,2","datetime.now.tolongdatestring,66,1","datetime.now.tolongtimestring,66,1","datetime.parse,94,1","datetime,94,1","dati,4,3,6,1,8,5,29,2","david,94,2","db,35,2,66,4,79,1,85,1,99,6","db.compactdatabase,79,1","dblval,99,1","dbq,99,1","dcom,1,1,15,5,37,1","dcountry,93,1","dd,94,2","ddl,79,1","deal,35,1,54,1,68,1,84,1,80,1,92,1","deallocate,46,2,60,2","deallocation,49,1,60,2","deals,68,1","debug,33,1,61,2,66,1","debugging,52,1","decide,57,1","decided,58,1,89,3","decidete,8,1","decimal,94,6","decimal&gt,88,3","declaration,53,1,62,1,63,1,64,1,96,1,99,1","declarations,69,1","declare,14,1,44,1,47,4,61,1,67,1,96,6","declared,82,1,62,1,88,1","declares,65,1,94,1","declaring,62,1","decode,67,1","decomment,42,1","decryption,77,1","dedicated,1,1","dedicato,26,1","dedizione,7,1","deep,54,1,57,1,59,4,60,1,86,4,92,5","def,11,1,57,5","default,39,1,42,4,46,1,51,1,61,4,63,1,74,1,90,1,94,5,98,1","default,94,1","defaults,42,1","define,35,1,60,2,62,2,72,2,94,1,96,1,99,1","defined,75,1,78,1","defines,55,1,56,1,57,1","defining,42,1,49,1,57,1,66,1","definition,10,1,37,5,46,1,57,2,58,1,62,1,94,2,98,4,112,1","deflate,59,5","degli,8,1,21,2,24,1","degrade,87,2","dei,4,1,8,1,21,1,29,1","del,3,1,4,1,8,1,9,1,22,1,23,1,24,3,26,1,28,1,86,12","delarray,86,12","delegate,81,5,82,5,65,1,84,2,86,5,94,3","delegatecpp,86,1","delegateenablebutton,82,3","delegates,81,1,80,2,86,2,94,2","delegatesample,86,12","delegatetextinlabel,82,3","delegateupdatelabeltime,82,3","delete,45,4,46,6,47,4,53,2,54,2,55,1,60,8,86,1,90,1,95,1","deleted,43,1,85,1","deletefile,56,2","deletes,95,1","deleteservice,61,2","deletewildcards.html,95,4","delivery,39,1","deliverynotificationoptions.onsuccess,41,2","dell,4,1,8,1,9,1,29,1","della,4,2,8,1,9,1,24,2,27,5,28,1,29,1,81,1","delle,2,2,3,1,4,1,8,1,22,2,24,1,25,2,26,1","delta,59,9,88,1","demonstrate,75,1","demonstrates,54,1","demonstration,72,1","dep,55,1","dependencies,61,1","depending,57,1,58,1","depends,86,1","deployer,51,1","deploying,51,1","deployment,92,1","deprecated,11,1,56,6,94,1","dereference,58,4","dereferencing,58,1","deregistereventsource,61,1","derivanti,27,1","derivation,64,3","derive,64,1","derived,58,1,62,5,63,4,78,1","deriving,53,2","descendants,62,1","description,61,11,97,1","desctructor,94,1","deserialization,75,1","deserialize,75,1","desiderano,23,1","desiderate,2,1,9,1","designer,86,3","designers,7,1,21,1,22,1,23,2,24,1,25,1,26,1,27,1,28,1,105,1,106,2,86,1,104,1,107,1,108,1,109,1,110,1,111,1","desirable,34,1","desired,61,1","desktop,1,1,6,1,9,2,16,1,30,2,35,2,51,1,57,1,61,7,85,1,100,7","despite,61,1","destaddress@mydomine.com,61,2","destination,47,4,60,2,85,4","destination.aspx,43,1","destination.mdb,85,1","destructor,94,1","destructors,94,1","details.aspx,79,1","determinazione,24,1","determine,31,1,69,1,81,1,70,1","determines,31,1,53,1","dettagli,70,1","dettagli.bindingcontext,70,1","dettagli.datamember,70,1","dettagli.datasource,70,1","detto,27,1","develop,57,1","developement,32,1","developer,1,1","development,1,1,31,1,85,1,89,1","device,55,2","deviceiocontrol,54,8,55,4","df92,98,1","dgridrows.html,70,4","di,2,5,3,1,4,6,5,4,7,3,8,23,9,2,21,5,22,7,23,2,24,4,25,3,26,4,27,11,28,4,29,3,60,2","dialog,35,1","dialogate,92,1,99,1","did,89,1","didactic,57,1","didn,101,1","diego,35,1,61,2,66,1,85,1","diego.burlando@yahoo.it,41,2","diff,84,2","diff.ticks,84,1","difference,10,1,12,1,31,5,42,1,81,5,58,1,62,1,70,1,73,1,78,2,112,1","differences,42,1","differencies,14,1,94,5","different,10,1,11,1,43,1,32,1,41,1,81,1,47,1,57,1,58,6,77,1,79,1,85,1,94,1,96,1,99,1,112,1","differently,58,1","differs,81,1","difficult,1,1","diffusione,4,2,29,2","digitate,3,1","digits,72,2","dim,94,56,95,1,96,8","dimension,68,1","dimensional,96,2","dimensioning,60,2","dimensions,63,9,96,1","dimostrazioni,29,1","dinamico,22,1","dir,67,1,79,1","direct,62,2","directive,10,1,38,1,42,1,112,1","directly,67,1","directory,36,1,61,2,68,1,74,1,90,1","directory.createdirectory,68,1","directory.exists,68,1","directory.getfiles,95,2","diritto,8,2","disable,87,2","disabled,81,1","disabling,87,1","disallow,93,1","disco,36,1","disco.exe,10,1,36,2,112,1","discouraged,61,1","discrezione,8,1","disk,54,1,55,11,66,1,75,2","disk.cpp,55,1","disk.mbr.signature,55,1","disk.partitionstyle,55,1","disks,55,1","dispatchtable,61,2","display,61,1,63,1,67,1","displayed,61,2","displaylang,79,1","dispongono,8,1","disponibile,22,1","disporre,21,2,28,1","disposal,94,2","dispose,82,1","disposing,82,3","disposizione,2,1","distribution,89,2","ditta,4,4,5,4,8,1,29,1","diventare,29,1","division,94,2","dizionari,25,1","dl,55,4","dl-&gt,55,37","dll,7,1,11,1,21,1,22,1,23,1,24,1,25,1,26,2,27,1,28,1,105,1,106,1,57,17,92,1,103,5,104,1,107,1,108,1,109,2,110,1,111,1","dlldeftutorial.html,57,4","dmm,1,9,2,8,3,5,4,4,6,4,7,5,8,14,10,5,11,5,12,5,13,5,14,5,15,5,16,5,17,5,18,5,19,5,20,5,21,1,22,1,23,1,24,1,25,2,43,5,26,1,27,4,28,1,29,3,31,4,32,4,33,5,35,1,36,1,37,1,38,5,40,4,42,4,44,3,81,1,82,1,105,1,106,1,49,1,50,1,51,1,62,4,63,4,64,4,65,4,71,1,83,1,84,1,74,4,76,1,77,1,78,1,79,1,80,1,85,1,86,1,87,1,88,1,89,4,90,1,91,4,92,1,93,1,94,1,95,1,96,5,97,5,104,1,107,1,108,2,109,1,110,1,111,1,112,5","dmm888.com,67,1","dmm888com,33,1","dmm,48,1","docontrolauto,81,3","docontrolmanual,81,3","doctype,38,1","document,69,1,57,1","document.forms,102,1","documentation,87,1","documenti,25,1","documento,8,4,9,4,21,4,22,4,23,4,24,4,25,5,26,4,27,4,28,4","documents,61,2,85,1","doesn,81,2,62,1,68,1,70,1,85,3,88,1,93,1,94,3,96,1,99,1","doesn’t,42,1","doing,81,1,57,1,76,1","domain,67,1,74,1","don,43,1,39,1,44,1,62,1,79,1,87,2,96,1","dotask,53,1","dotate,27,1","dotato,24,1","double,51,2,63,13,84,1,94,3,99,4","double&gt,88,1","double-click,51,2","double-clicking,51,2","dove,27,1","dover,21,1","down,42,1,87,2","downcasting,58,1","download,1,1,3,1,4,1,5,4,6,1,7,1,9,1,12,1,20,3,21,1,22,1,23,1,24,1,25,1,43,1,26,1,27,1,28,1,29,1,30,1,42,1,69,1,81,1,82,1,105,1,106,1,52,1,53,1,57,2,60,1,61,1,67,5,84,1,75,1,77,1,78,1,79,1,80,1,86,1,87,1,89,1,91,3,92,1,99,1,104,1,107,1,108,1,109,1,110,1,111,1","download.html,5,4","downloaded,67,1,79,1","downloading,69,1","downloads,79,1","dowork_click,85,1","dr,94,1","dramatic,58,1","draw,50,2","drawbackground,50,1","drawfocusrectangle,50,1","drawing,11,1,50,1,86,11","drawitem,50,1","drawitemeventargs,50,1","drawitemstate,50,2","drawmode,50,1","drawstring,50,1","drive,54,7,55,3","drive_layout_information_ex,55,3","driver,99,2","drop,1,1,42,1","dropdown,42,2","dropfiles,68,1","ds,73,4","ds.tables,73,4","dstate,93,1","dt,94,2","dt.tostring,94,2","dtd,38,2","due,3,1,38,1,73,1,86,1,89,1,93,1","during,57,2,75,1","dwargc,61,5","dwbytesread,54,8","dwbyteswritten,54,8","dwcheckpoint,61,2","dwctrl,61,3","dwcurrentstate,61,6","dwight,94,2","dwiocontrolcode,54,2","dword,54,6,55,2,59,3,61,17","dwpos,59,2","dwriter,75,2","dwriter.close,75,1","dwstarttype,61,3","dwthreadid,61,3","dwwaithint,61,3","dwwin32exitcode,61,3","dynamic,14,1,57,1,58,1,96,7,103,1","dynamically,94,1","dynarray,96,5","e-&gt,50,9","e.columnindex,76,2","e.description,99,1","e.g,58,2","e.m.o.f,5,4","e.rowindex,76,2","early,61,1","easiliy,32,1","easily,51,1,73,1,92,1","easy,42,1,65,1,76,1,99,1","eb574b236133e60c989c6f472f07827b,69,1","ecc,4,1,29,2","eccezioni,22,1","eclipse,89,1","ed,4,1,8,2,21,1,24,1,29,1","edit,58,3,85,1","edited,100,1,103,2","editing,42,1","edit-mode,85,1","editor,42,1,86,1","education,1,1","eeee.it,90,2","effects,51,2","effettuati,27,1","effettuato,8,1","efficienza,9,1","effort,1,1","eg,86,1","eight,72,1","either,37,1,57,1,58,1,60,1,61,2,67,1,90,1","elaborare,8,1","elegantly,80,1","element,48,1,51,2,94,1,96,3","elements,94,1","elettronico,8,1","eliminate,103,1","elseif,94,2","email,3,1,11,1,19,1,29,1,40,1,61,7,102,8","e-mail,3,1,4,3,8,2","email.value,102,1","emails,102,1","emailverifyjs.html,102,4","embedded,98,1","empty,45,4,61,1","en,38,1,79,1","enable,48,3,78,1","enable_idle_thread,101,1","enable_idle_thread&gt,101,1","enablebutton,82,3","enabled,34,1,81,1,52,1,87,1","enables,33,1","enablevisualstyles,51,2","enabling,47,1,51,2","enclosed,94,1","encoding,58,1,66,1","encryption,77,6","end,39,1,82,1,45,4,58,1,59,3,61,2,68,2,71,2,90,1,94,39,99,3","endgetresponsecallback,90,3","endgetstreamcallback,90,2","endianness,58,1","endl,58,1","endoffile,61,1,99,3","endregion,86,1","ends,85,1","endthread,48,1","endtime,82,2","endtime.ticks,82,1","engine,37,1,57,3,79,3","engine.dll,57,2","engine.h,57,1","engine_api,57,1","engines,99,1","english,1,2,7,1,21,1,22,1,23,1,24,1,25,1,26,1,27,2,28,1,105,1,106,1,104,1,107,1,108,1,109,1,110,2,111,1","enhanced,52,1","enlarge,59,1","enter,61,1,68,1","entercriticalsection,48,3","entered,61,2","enterprise,10,1,39,5,112,1","enterprises,37,1","enters,94,2","entire,46,1,87,1","entity,31,1","entries,55,2","entry,51,2,55,2,56,1,57,1,61,3,98,1","enum,94,6","enumerations,94,1","environment,12,1,69,1,81,1,82,5,48,1,57,1,60,1,61,1,66,1,99,1","environments,57,1","envp,61,1,99,1","eof,61,1,99,2","equal,34,1,44,1,59,2,75,2,86,1","equals,59,2,85,1,88,1,94,4","equivalent,42,1,94,1","erased,45,2","err,56,2,61,1","err.description,94,1","errno_t,56,1","error,42,1,57,1,61,4,64,1,89,1,90,1,94,2","errors,99,1","es,4,2,29,2","esagrammi,24,1","escape,94,1","esclusivamente,8,1","eseguibile,8,1","eseguito,27,1","esempio,8,1","esigenze,4,1,28,1","esistenti,25,1,26,1","especially,58,1","esperienza,2,1","esperti,4,4","esplorare,24,1","esportazioni,25,1","esposta,8,1","essentially,37,1","essere,8,3","esso,8,1","estabilish,11,1,51,4","establishes,57,1","estimated,61,1","evaluations,94,2","even,58,1","event,42,6,43,1,39,1,50,1,61,15,84,1,76,1,87,1,89,1,90,1,94,4,102,1","eventargs,42,14,43,1,81,2,82,1,85,1,86,11,87,2","eventhandler,42,8,86,4","eventlog_error_type,61,1","evento,24,1","events,12,1,42,4,61,1,94,2","eventtohandle,42,1","everyone,46,1,72,1","everything,69,1,61,1","ex,41,2,82,1,94,3","ex.message,94,2","ex.tostring,41,2,82,1","exact,86,1","exactly,81,1,58,2,61,1","exadecimal,69,1","examine,39,1","example,15,1,42,4,43,1,31,1,34,3,44,1,69,2,46,1,48,1,49,1,51,2,57,3,58,5,61,2,62,1,63,1,65,1,71,1,73,2,83,1,84,1,75,1,86,2,87,2,88,1,90,6,94,1,95,1,99,1,100,1,103,1","example.mdb,99,3","examples,10,1,112,1","examples.system.net,90,1","exaustive,14,1,77,5","exceed,34,1","excel,94,2","exception,41,4,82,1,83,1,75,1,90,6,94,11","exception,94,1","exceptions,84,1,90,2","executable,67,1","execute,99,3","executed,99,1","executes,81,1,61,1","executing,99,1","execution,34,1,61,1","executiontimeout,34,3","exist,41,2,45,4,68,1,96,1,99,1","existing,12,1,36,1,66,1,78,1,94,1,96,1","exists,45,2,61,1","exit,68,1,94,1,101,1,103,1","exitprocess,48,1","exitthread,61,1","exp,102,1","expect,34,1","explaining,69,1","explanation,81,1","exploit,57,1","explorer,51,1,57,3,103,1","exploring,103,1","export,57,2","exportable,57,3","exported,57,2","expose,65,1","exposes,44,1","exposure,36,1","express,99,1","expressions,94,1","ext,79,1","extended,55,3,78,1","extending,94,2","extends,58,1","extensio,95,1","extension,12,1,17,1,35,1,51,4,78,9,103,6","extensions,35,2,51,4,79,2","extensions.html,78,4","external,57,2","extra,99,1","extract,10,1,51,2,68,1,112,1","eye,87,1","f1,99,3","f2,63,3,99,4","f3,99,4","f4,99,4","f5,99,4","f6,99,6","fact,42,1,81,1,61,1,92,2","fade,87,1","fail,10,1,55,1,112,1","failed,34,1,61,11","fails,40,4,61,1,85,1","fall,58,1,61,1","falls,58,1","false,42,3,33,1,35,1,41,1,44,1,81,4,82,2,48,8,51,2,57,1,61,5,68,1,73,2,84,3,74,2,75,1,85,6,86,1,87,2,90,1,93,2,99,2,102,1","familyid,79,1","fat,55,2","fat32,55,1","fatto,8,1","favore,29,1","fclose,45,2,56,2,59,1","feature,39,2,51,1,58,1","features,11,1,39,1,52,1,53,4,61,2","fedelmente,24,1","feed,14,1,57,1,97,3","feel,61,1","ffreeresult,57,2","fi,44,2","fi.close,44,2","fi.read,44,3","fi.write,44,3","field,1,1,14,1,85,2,92,1,93,1,99,8,102,1","field1,99,2","field2,99,2","field3,99,2","field4,99,2","field5,99,2","field6,99,2","fieldsptr,61,1","fiere,29,1","figure,37,1","file,10,2,11,5,12,3,17,1,21,1,42,1,43,1,33,2,34,7,35,7,36,2,44,13,69,6,45,38,46,3,49,6,51,17,54,7,56,8,57,8,58,2,59,11,66,12,67,10,68,5,71,2,77,6,79,8,86,1,90,6,93,1,94,14,99,4,101,2,103,12,112,2","file.createtext,94,2","file.delete,43,1,79,3","file.exists,79,3","file.openread,90,1,94,2","file.opentext,94,4","file.openwrite,94,2","file_attribute_normal,54,4,55,1,59,2","file_begin,59,1","file_current,59,1","file_end,59,3","file_map_all_access,59,2","file_share_read,54,4,55,1","file_share_write,54,4,55,1","file,51,1","fileaccess,49,1","fileaccess.read,69,1,75,1","fileaccess.write,43,1,68,1,71,1","fileassociation.html,103,4","fileassociations.html,51,4","filedlg,44,2","filedlg.domodal,44,2","filedlg.getpathname,44,2","fileexts,103,1","filehandle,56,6","filehandlesecure,56,7","filemode,49,1","filemode.create,43,1,68,1,71,1,75,2","filemode.open,69,1,75,2","filename,51,3,67,7,68,3,90,6","filenameu,59,4","files,10,1,11,1,34,5,35,1,44,3,51,3,54,1,57,1,61,3,68,1,79,1,86,1,94,1,95,2,99,2,103,3,112,1","filesize,68,3","filestream,43,1,69,2,49,2,68,2,71,2,75,8,90,1","filetodelete.txt,90,1","filetoerase,95,3","filezilla,91,5","fill,39,1,47,2,59,1,60,2,61,1,66,1,71,1","filled,49,1,96,1","fillrectangle,50,1","fills,48,1","filosofia,24,1","filter,87,1","filtering,12,1,73,2,87,5","finalize,94,2","finally,69,1,61,1,94,2","find,1,1,42,1,32,1,91,1","finding,40,1,58,1,99,1","fine,36,1","finished,81,1,82,2,84,1","finite,44,1","fiore,27,1","fire,12,1,42,2,84,1,76,1,86,10","fired,42,1,86,1","firemethods.html,86,4","firewall,7,1,21,1,22,3,23,1,24,1,25,1,26,1,27,1,28,1,105,2,106,1,104,1,107,1,108,1,109,1,110,1,111,1","firing,42,1,86,1","first,43,2,35,1,36,1,37,1,39,1,41,1,44,3,47,4,48,1,51,2,57,3,59,1,60,14,61,6,66,1,67,1,71,1,72,1,73,1,86,2,90,1,91,2,96,2","firstly,36,1","firsttime,68,4","five,72,1","fix,85,1,101,2,103,1","fixed,50,1","fl,99,4","flag,82,1,61,2","flags,61,1","flds,61,1","flds-&gt,61,12","flexibility,37,1","float,58,15,94,8,99,4","fltval,99,1","flunk,94,2","flute,20,3","fnc_ret,61,3","focalized,99,1","focus,57,1","folder,35,1,57,3,66,2,79,1,95,2,103,1","follow,42,1,91,1","followed,39,1,57,2","following,42,1,43,3,33,1,35,1,38,1,44,2,69,2,82,2,45,2,46,1,48,1,49,1,50,1,51,1,54,2,55,1,56,1,57,6,61,5,63,2,65,1,66,2,68,1,70,1,71,1,72,3,73,3,83,1,74,1,75,1,76,1,79,5,80,1,85,3,86,2,87,1,91,1,92,1,93,1,96,1,98,2,99,1,100,1,101,1,103,1","follows,42,1,51,1,57,2,66,1,84,1,88,1,96,1","fonetica,27,2","font,50,1,86,1","foo,58,3","foo.size,94,2","fooptr,58,3","fopen,11,1,45,4,59,1","fopen.cpp,56,1","fopenfopens.html,56,4","force,55,1","forces,62,1","foreach,69,1,72,2,73,1,75,1,85,4,86,1,94,2","forest,1,1","forget,79,1","form,10,1,11,2,12,3,42,4,38,1,69,1,81,2,52,4,84,7,85,1,86,10,87,5,97,1,102,1,112,1","form_load,84,1","form1,81,2,82,3,51,6,85,2,86,2,87,2","form1_load,87,1","forma,22,1","formally,59,1","format,58,1,97,2,99,2","formato,23,1,25,3","formats,51,1","formed,90,1","forms,11,1,12,3,38,5,81,1,82,6,50,2,51,6,52,1,76,4,80,5,86,12,87,2","fornire,8,2","forward,94,2","found,87,1","foundation,75,4","four,58,1,72,1,96,1","fourt,96,1","fp,45,7,59,5","fpw,45,4","fragment,44,1,69,1,79,1,85,1,93,1,95,1","fragments,41,1,70,1","framework,11,1,41,5,49,4,60,1,61,1,63,1,88,2,94,1","fread,11,1,45,1","fred,94,2","free,1,1,57,1,61,1,87,1,94,4","freelibrary,57,1","freesplittedarraya,60,1","freesplittedarrayw,60,1","freeze,12,1","fresh,39,1","friend,94,1","friend,94,1","fruntimelinksuccess,57,2","frutto,7,1","fs,69,1,75,4","fs.close,69,1,75,2","fs.length,69,2","fsctl_lock_volume,54,2","fsctl_unlock_volume,54,2","fseek,45,2,59,1","ftell,45,1,59,1","ftp,12,1,67,1,90,8,91,2","ftp.dmm888.com,67,1","ftp.eeee.it,90,2","ftpoperations.html,90,4","ftpstate,90,8","ftpwebrequest,12,1,90,14","ftpwebrequest.create,90,1","ftpwebresponse,90,6","full,61,2,96,1","fully,92,1","function,11,2,82,3,45,1,47,2,51,3,55,1,57,13,60,6,61,28,65,2,83,1,84,3,94,4,98,1,102,8","functionality,39,1","functions,81,1,46,1,57,7,58,1,60,2,94,1","functiontocall,84,1","funge,8,1","funzioni,26,2","fuori,8,1","further,57,1,84,1,96,1","fwprintf,11,1,56,13","fwrite,11,1,45,1","g.equals,84,2","gain,48,3","gamma,26,1,88,1","garantire,2,1","garbage,49,1,58,1,79,1","gate,81,5","gb,34,1,55,1","gc.collect,79,1","gcnew,49,2,50,1,51,3,86,13","gdi,11,2","general,40,1,57,1","generate,42,1,58,1","generated,55,1,86,1","generates,84,1","generic_all,59,2","generic_read,54,4,55,1","generic_write,54,3,55,1","genoa,1,4,3,5,4,4,6,4,7,4","genova,2,2,4,1,8,1,29,1","gestione,22,2,26,2","gestire,21,1","gestisce,27,1","gestito,8,1","getaudiopause,57,1","getaudioword,57,1","getchanges,85,1","getcollect,99,7","getfields,61,1","gethashcode,85,1","getitemtext,50,1","getlasterror,61,6","getlasterrortext,61,3","getlocaltime,99,1","getmodulefilename,61,1","getprocaddress,57,3","getprocessheap,44,1","getrandom,48,3","getting,48,1,55,1,70,4,90,1","gettype,94,4","getvaluedata,57,2","ghsvcstopevent,61,6","gi&agrave,3,1","gi,3,1","gigabytes,55,1","give,82,1,51,1","given,11,2,17,1,31,2,34,2,69,1,47,2,50,1,57,1,58,2,60,1,61,1","gives,70,1","giving,69,1,79,1","gli,8,1,22,1,23,1,24,3,26,1","glibc,89,3","global,61,1,65,1","globally,61,1,98,1","gnu,91,1","gnutils,91,2","goandlisten,65,2","going,39,1,92,4,96,1","good,1,1,61,2,99,1","goto,94,2","gpa,94,8","grade,94,2","grado,28,1","grafica,27,1","grande,2,1","grant,39,1","granted,31,1,69,1","graphic,51,1","graphics,94,1","graphics-&gt,50,2","graphics,94,1","gratuita,2,1,4,4","gray,86,1","grazie,4,1,28,2","great,34,1,90,1","greater,48,1","green,94,2","greeting,94,7","greetings,94,2","gridview1.databind,43,1","gridview1.datasource,43,1","group,61,1","gsvcstatus,61,2","gsvcstatus.dwcheckpoint,61,2","gsvcstatus.dwcontrolsaccepted,61,2","gsvcstatus.dwcurrentstate,61,2","gsvcstatus.dwservicespecificexitcode,61,1","gsvcstatus.dwservicetype,61,1","gsvcstatus.dwwaithint,61,1","gsvcstatus.dwwin32exitcode,61,1","gsvcstatushandle,61,4","gui,61,1","guid,15,1,98,7","guide,1,3,43,4,33,4,46,1,50,1,97,4","h2a,94,1","ha,8,1,94,2","had,1,1,58,1,66,1","half,59,1","hand,58,1","handle,12,1,81,1,54,6,55,3,57,2,59,6,61,13,88,3","handler,42,1,61,6,98,1","handles,42,2,94,1","handling,94,2","hands,89,1","hanno,27,1","hard,32,1,55,7","harddisk1,55,1","harding,94,8","harding.compsci.graphics,94,3","harding.compsci.graphics,94,1","hardisk,11,1","hardware,2,1","hash,69,2","hasn,82,1","haven’t,57,1","having,37,1,47,2,61,1,68,1,103,1","hdpartitioning.html,55,4","hdrive,55,7","header,68,3","heap_zero_memory,44,1","heapalloc,44,1","heaven,56,1","helloworld,94,2","help,47,1,90,1","hero,94,11","hero.defend,94,2","hero.name,94,3","hero.powerlevel,94,1","hero.rest,94,1","hero2,94,2","hero2.name,94,2","hero,94,1","heventsource,61,5","hex,69,1,58,2,94,2,98,1","hex.tostring,69,1","hh,94,3","hidden,35,1,55,1","hierarchies,62,1","high,61,1","hinstance,57,1","hinstlib,57,7","hints,55,1","his,51,1","hkey_current_user,103,1","hkey_local_machine,98,1,100,1","hn,59,9","hobbisti,24,1","holds,58,1,94,3","home,4,1,5,1,6,1,7,1,8,1,9,1,10,2,11,2,12,2,13,2,14,2,15,2,16,2,17,2,18,2,19,2,20,2,21,1,22,1,23,1,24,1,25,1,42,2,43,2,26,1,27,1,28,1,31,2,32,2,33,2,34,1,35,2,36,2,37,2,38,2,39,2,40,2,41,2,44,2,81,2,82,2,45,2,46,2,47,2,48,2,49,2,50,2,51,2,52,2,53,2,54,2,55,2,56,2,57,2,58,2,59,2,60,2,61,2,62,1,63,2,64,1,65,1,66,2,67,2,68,2,69,2,70,2,71,2,72,2,73,2,83,2,84,2,74,2,75,2,76,2,77,2,78,2,79,2,80,2,85,2,86,2,87,2,88,2,89,1,90,2,91,1,92,2,93,2,94,2,95,2,96,2,97,2,98,2,99,2,100,2,101,2,102,2,103,2,112,2","hopefully,79,1","horizontal,97,1","host,58,2","hosting,65,2","hour,34,2,61,2","hour.minute.second,99,1","hours,89,1","house,1,1","however,35,1,54,1,58,2,61,1,84,1,87,1,88,1,95,1","hp,59,5","hr,98,1","hresult,98,1","hthread,61,3","html,38,1","http,33,1,34,1,36,1,38,1,67,2,75,4,79,1","httpruntime,34,3","huge,34,4,55,1","hx,59,5","i&lt,47,2","i.v.a,29,1","ialarmclock,94,5","ialarmclock,94,1","iaprif,66,1","iasyncresult,90,2","iclock,94,2","icon,51,1,103,2","iconf,61,2","iconf-&gt,61,1","iconf.createinstance,61,1","iconfigurationptr,61,1","icons,51,1","icount,84,5","id,65,1,68,1","ide,42,1,32,1,36,1","idea,85,1","ideal,57,1","ideale,22,1,26,1","identical,12,1,85,4","identificano,8,1","identification,31,1","identifier,61,3,98,1","identifies,98,1","identify,33,1","identit&agrave,8,1","identity,31,6","idle,48,3,101,1","idok,44,2","ieee,58,2","ienumerable&lt,73,2","iequalitycomparer&lt,85,1","ifs,55,1","ii,39,2","iid,98,1","iif,94,1","iis,10,1,39,2,112,1","il,2,1,4,5,7,1,8,3,9,2,21,1,23,1,26,1,27,2,29,1","illegal,81,2","image,7,1,21,1,22,1,23,2,24,1,25,1,26,1,27,1,28,1,41,2,105,1,106,2,49,1,51,1,54,5,104,1,107,1,108,1,109,1,110,1,111,1","image.pen,54,2","imagefile,54,1","imagepath,33,3","images,67,1","imagine,51,1","imessagefilter,87,3","imessageptr,61,1","immagine,21,1","immagini,23,2,33,1","immediately,35,1,51,1","immense,47,1","implement,68,1","implementari,25,1","implementation,11,1,37,1,46,2,53,1,60,2,62,2,63,1,68,1,87,1,94,2,99,1","implementations,62,1","implementazion,68,1","implemented,60,1,69,1","implements,94,1","implicitly,64,1,67,1,94,2","import,38,3","importance,48,1,61,3","important,10,1,14,1,42,1,40,1,43,1,81,1,51,1,54,1,57,1,58,1,61,3,66,1,85,1,89,1,90,1,94,5,99,2,100,1,112,1","importanti,27,1","imported,38,1","importing,10,1,38,6,112,1","importnamespace.html,38,4","importrow,85,1","imports,94,5","impossible,69,1","improve,61,1","imsg,61,1","imsg-&gt,61,9","inability,12,1","inbuilt,85,1","incaricato,2,1","include,36,2","included,45,1,99,1","including,39,1,61,1","incoming,33,1,40,1,68,1","incompatibility,58,1","incorporated,37,1","increase,58,1,59,4","index,10,4,11,4,13,4,14,4,15,4,16,4,17,4,18,4,19,4,20,4,42,2,31,2,32,2,33,2,34,1,35,2,36,2,37,2,38,2,39,2,40,2,41,2,43,2,44,2,81,2,82,2,45,2,46,2,47,2,48,2,49,2,50,3,51,3,52,2,53,2,54,2,55,2,56,2,57,2,58,2,59,2,60,2,61,2,62,1,63,2,64,1,65,1,66,2,67,1,68,2,69,2,70,2,71,2,72,2,73,2,83,2,84,2,74,2,75,2,76,2,77,2,78,2,79,2,80,2,85,2,86,2,87,2,88,2,89,1,90,2,91,1,92,2,93,2,94,3,95,2,96,8,97,2,98,2,99,2,100,2,101,2,102,2,103,2,112,4","indexes,99,1","indicare,8,1","indicate,61,4","indicates,53,1","indipendently,82,1","indirizzo,4,2,8,5,29,1","individual,37,1,58,5","ineritance,11,1,53,8","inetpub,33,1","infatti,27,1","infinite,48,1,61,1","inflate,59,5","info,1,2,35,1,44,1,73,2,75,1,85,3,93,1,94,2,99,2","informatica,2,6,8,3,27,1,29,2","informatici,2,1","information,34,1,39,3,60,2,61,2,69,1,84,1,94,2,98,2","informativa,4,1,8,2,29,1","informazioni,8,8","informer,61,2","infrastructure,37,1","inglese,27,1","inglesi,27,1","inherit,47,1","inheritable,61,2","inheritance,61,1,62,1,94,2","inherited,62,1,64,1","inheriting,87,1","inherits,94,2","init,42,1,46,4","initcomplete,42,2","initial,61,2,99,1","initialization,61,11","initialize,61,1,99,1","initializecomponent,81,1,82,1,85,1,86,3,87,1","initializecriticalsection,48,1","initialized,46,2,94,2","initializing,94,3","initially,81,2","in-line,42,1","inoltre,21,1,25,1","input,11,2,44,5,45,5,46,1,71,1","inserendo,4,1","inserimento,21,1","inserite,4,1","insert,1,1,11,1,35,2,69,2,88,1,94,1,99,2","inserted,81,1,59,1,98,1","inserting,81,1","inside,51,1,57,2,65,3,66,1,93,1","insieme,8,1","inspect,57,1,72,1,95,1","inspectable,61,1","inst,46,6","instability,89,1","install,39,3,61,6,89,1,91,3","installation,51,1","installed,39,1,51,1,61,2,79,2,89,2","installs,61,1","instance,67,2,78,1,90,1","instances,62,2","instanciates,65,1","instantiable,62,1","instantiate,62,1,69,1","instantiated,62,1","instantiation,86,1","instantly,51,1","instead,35,1,44,1,58,4,61,1,66,1,68,1,72,1,73,1,79,1,87,1,93,1,99,1,103,1","instruct,51,1","instructions,58,1","insuperabile,9,1","int,44,9,45,1,46,11,47,2,48,9,49,2,51,2,53,16,54,8,55,6,56,2,57,13,58,34,59,9,60,16,61,2,62,2,65,3,68,5,69,1,70,1,71,3,72,2,84,5,75,1,85,2,86,3,87,41,90,3,94,35,96,2,99,4","int&amp,57,1","int&gt,58,1","int16,88,1","int16&gt,88,6","int32,94,1","int32&gt,88,1","intarray,96,1","integer,48,1,57,2,94,32,96,2,99,4","integer,94,1","integers,72,1","integral,46,2,88,1","integrated,99,1","integrit,9,1","intel,101,1","intelligente,22,1","intelligenza,27,1","intellisense,78,1","intended,81,1,57,1,72,1","interact,86,1,87,1","interaction,61,2,87,1,92,1","interagire,23,1","intercepted,42,1","interested,58,2","interesting,11,1,42,1,53,4,58,1,69,1","interfaccia,27,1","interface,44,3,81,1,94,10","interface,94,2","interfaces,36,1,94,1","interfacing,41,1","internal,45,1,58,1,87,1,94,4","internally,58,1","interne,4,1,29,1","internet,7,1,21,1,22,1,23,1,24,1,25,1,26,1,27,1,28,3,39,3,41,1,105,1,106,1,89,1,104,1,107,1,108,1,109,1,110,1,111,2","interno,8,1","interoperate,92,1","interprete,25,1","intervallo,22,1","intervento,9,1","intm,94,1","intptr,87,2","intptr.zero,87,1","ints,94,1","intuitive,63,1","intval,99,1","invalid,58,1","invalid_handle_value,54,4","invalidoperationexception,74,1","investigare,24,1","inviando,8,1","inviarvi,4,1","invio,8,1","invocare,26,1","invoke,14,1,34,1,36,1,37,1,81,2,79,1,86,2,92,2","invoked,63,1,99,1,102,1","invokerequired,81,2","invoking,85,1","involve,37,2","involved,85,1,69,1","involving,34,1","io,49,2,54,4","ioctl_disk_create_disk,55,1","ioctl_disk_set_drive_layout_ex,55,1","ioctl_disk_update_properties,55,2","iostream&gt,48,1","ip,100,1","ipaddress.any,68,1","isa,58,1","isn,58,1","isnull,83,1","isostituibile,9,1","issue,16,1,40,1,80,1,101,1","issued,89,1","issues,81,1,85,1,84,1","istream,58,1","isvalidemail,102,1","it’s,51,1,69,1","italy,8,1","item,11,1,36,1,46,1,50,5,55,3,57,1,61,12","item&lt,55,1","item.pitem,57,3","items,50,3","iterate,99,1","iteration,94,2","itimer,94,1","itimer,94,1","itneedstobebrokeninto2&gt,94,1","its,15,1,42,1,41,1,44,1,81,1,85,1,45,3,47,3,51,3,57,5,58,2,59,1,60,2,61,3,68,1,84,2,75,1,96,2,98,1","itself,50,1,51,3,57,1,61,1,69,2,71,1","ival,99,1","jagged,94,4","janedoe@contoso.com,90,1","january,32,1,89,1","java,58,1","javascript,1,1,19,6,43,3,102,4","javascript.html,19,4","jet,35,2,79,7,93,5","jo,94,3","johann,20,3","john,94,3","jones,94,2","jpeg,51,1","kb,34,1,54,2,68,2","kbytes,68,1","keeping,94,1","kept,87,1","key,1,1,10,1,33,3,66,5,98,1,101,1,103,1,112,1","keyword,42,2,62,1,63,1,64,1,93,1,94,1","keyword,94,1","keywords,94,2","kill,61,1","kind,10,1,58,2,78,1,95,1,99,1,112,1","kinds,58,1","king,7,1,21,1,22,1,23,1,24,2,25,1,26,1,27,1,28,1,105,1,106,1,104,1,107,2,108,1,109,1,110,1,111,1","know,81,1,57,1,58,1,61,1,69,1,96,1,100,2","knowledge,44,2","known,35,1","l%s,56,8","l.area,63,1","la,2,2,3,3,4,4,8,4,9,4,21,2,22,1,24,2,25,1,26,1,27,1,29,4,56,2","label,84,2","label1.text,41,4","labelauto,82,1","labelauto.refresh,82,3","labelauto.text,82,3","lancio,24,1","lang,36,3","langid,79,1","language,14,1,36,3,38,1,43,1,61,1","languages,58,2,63,1,77,1,92,2","laptop,101,4","laptops,16,1,101,1","large,10,1,34,2,112,1","large_integer,55,1","larger,58,3","last,81,1,47,3,68,1,70,1,91,1,94,1,99,1","lastand,94,1","launch,39,1,51,2,61,1","launched,61,1","launching,61,1","laura,94,2","lavorare,9,1","lavoro,9,1,26,1","layout,55,1","lays,73,1","lb,50,1,73,1","lb-&gt,50,2","lb.items.add,42,10,73,1","lb.selecteditem.value.tostring,42,1","lb_drawitem,50,1","lb_selectedindexchanged,42,1","lb1,73,1","lb1.items.add,73,1","lbl.text,42,1","lbtnjob1,86,1","lbtnjob2,86,1","lbtnjob3,86,1","lbutton4,86,1","lc,56,4,59,2","ldelegatesample,86,2","ldothreejobs,86,1","le,4,4,8,7,23,1,24,1,27,1,28,1,29,2","learn,1,1,99,1","learning,63,1","least,55,1,57,1,58,2,61,1","leave,58,1","leavecriticalsection,48,6","left,12,1,84,4,87,3,96,2","legge,4,2,29,2","leggere,21,1,25,1,29,1","leggete,4,1","len,44,10","lenbuf,44,2","lenbuffer,45,9,59,1","lenfile,59,4","length,14,1,44,1,45,2,49,2,59,2,68,2,93,11","lentriphon,44,5","lenw,57,2","less,96,1","let’s,51,2,57,2,69,1,89,2","lets,81,1","letter,73,2,75,1,94,10","letto,8,1","level,69,1,71,1","lfile,68,2","lhello,56,1","libraries,57,1,103,1","library,15,1,52,1,53,1,57,2,61,1,79,2,99,1","libreria,22,1","licenza,8,1","licenze,21,1","light,81,1,82,1,72,1","likely,58,2","limit,34,3","limitation,73,1","limitations,54,1","line,14,1,36,1,51,4,57,3,61,3,84,1,90,1,91,1,94,23,97,2","line&lt,94,1","line,94,1","lineedaelaborare,84,2","lineerimaste,84,3","line-feed,94,1","lines,11,1,56,5,57,1,61,1,94,2","lines&lt,94,1","lines,94,1","lingua,27,1","link,57,2,58,1","linkage,57,1","linked,103,1","linkers,58,1","linking,98,1","linq,12,2,72,8,73,6,75,2","linq1.html,72,4","linq2.html,73,4","linux,1,1,13,5,89,7,91,4","linuxblog.html,13,4","linuxblog0.html,89,4","lis,62,1","list,42,1,57,1","listbox,11,1,42,2,50,7,73,1","listboxchangecolor.html,50,4","listen,62,3,68,2","listener,68,2","listenersocket,68,2","listenersocket.receivebuffersize,68,1","listening,68,1,100,1","literal,94,2","little,57,1,84,1","ljob1,86,1","ljob2,86,1","ljob3,86,1","ll,35,1,50,1,58,2,91,1,103,1","lnk2001,57,1","lo,27,2,54,2","load,42,2,43,1,49,1,58,1,61,1,66,1","loadcomplete,42,2","loaded,51,1","loaders,58,1","loadlibrary,11,1,57,6","local,61,3,90,1,94,1,99,2","localized,86,1","localsystem,61,1","locate,101,1","location,79,1,86,4","lock,54,3","locking,10,1,43,2,54,1,112,1","lockobj,62,1","log,61,4,69,1","logfile_path,62,1","logged,74,2,90,1","logging,37,1","logic,82,1,61,1","logical,55,2,94,4","logically,55,1","login,10,1,39,1,112,1","logo.jpg,41,2","logon,61,1,90,1","logs,39,2,61,1","long,45,1,51,1,58,6,59,1,61,2,68,1,94,5,99,10","longer,34,1,58,2","longline,94,1","look,33,1,46,1,57,2,58,7,95,1","loop,94,5","looping,94,2","loops,94,6","loro,4,1,24,1,29,1","lost,41,1","low,61,1","lownums,72,2","lownums1,72,2","lpctstr,61,1,99,1","lpcwstr,57,2,59,2","lpinbuffer,54,2","lpoutbuffer,54,2","lpparam,61,3","lpservice_main_function,61,1","lpstr,61,2","lpszargv,61,8","lpszstrings,61,5","lptstr,61,6","lpvoid,61,3","lpwstr,61,2","lstrcmpi,61,4","ltotal,94,2","lun,68,3","m.hwnd,87,1","m.msg,87,2","m.test.count,75,2","m_buffer,59,6","m_bufsize,54,8","m_commandline,61,1","m_ffullname,68,4","m_fname,68,5","m_infomemory,60,4","m_instrument,68,2","m_rowsize,60,4","m_splitted,60,6","m_status,61,3","m_status.dwcurrentstate,61,2","m_tcpport,62,1,68,3","m_tcpport.tostring,68,1","m_threadid,68,1","m_threadid.tostring,68,1","m_written,59,2","macchina,9,1","machine,58,7,61,1,79,1,90,1,99,1,101,1","machines,58,2,68,1","madonna,94,1","mail,10,2,39,2,40,8,41,9,61,1,112,2","mailaddress,41,16","mailclient,41,2","mailclient.credentials,41,1","mailclient.deliverymethod,41,2","mailclient.send,41,2","mailclient.usedefaultcredentials,41,1","mailing,29,1","mailmessage,41,5","mailpriority.high,41,2","mailservername,41,5","main,12,1,81,2,82,1,46,1,48,1,51,7,58,1,61,1,63,1,68,1,72,1,84,3,75,1,79,1,86,1,90,8,94,2","maintain,34,1","maintenance,65,1","makeaccess,79,1","makeaccess20032007,79,1","makeaccess20032007.html,79,4","manage,11,2,12,2,81,4,82,1,54,1,83,4,84,1","managed,11,1,81,1,49,4,53,3,57,1,61,3,80,1,86,1,92,1","management,37,1,39,3,61,1","manager,7,3,21,3,22,4,23,4,24,3,25,3,26,4,27,3,28,3,39,2,105,4,106,4,55,1,68,1,104,3,107,3,108,3,109,4,110,3,111,3","manages,37,1,40,1,51,1","managing,10,1,44,1,81,1,51,1,84,1,112,1","mandating,58,1","mandatory,69,1","mandoli,4,1,8,1,29,1","manipolazione,22,1","manipulate,100,1","manual,61,3","manually,81,1","manualresetevent,12,1,81,9,62,1,90,4","manutenzione,1,1,6,1,9,3,30,2","map,59,1","mapped,57,1","mapping,59,1","maps,57,1,59,1","mapviewoffile,59,2","mark,94,2","marked,57,2,62,1,64,1,103,2","marshal,81,1","mascot,94,10","mascot.substring,94,1","massima,9,1","matches,102,1","matching,94,2","math.h&gt,99,1","math.pi,63,1","math.pow,94,1","matter,82,1,92,4","max,48,3","max_path,61,2","max_students,94,1","maximum,82,1","maxrequestlength,34,3","maybe,59,1,87,1","mbr,55,1","mbr.bootindicator,55,1","mbr.hiddensectors,55,4","mbr.partitiontype,55,4","mbr.recognizedpartition,55,4","mbr.signature,55,1","mc,54,12","md5,12,1,69,16","md5.computehash,69,1","md5cryptoserviceprovider,69,1","md5sum,69,1","md5sumcsharp.html,69,4","mdb,21,1,99,1","mdb-database,90,1","me._powerlevel,94,1","me.gpa,94,1","me.name,94,1","meaning,10,1,55,1,58,4,112,1","meaningful,58,2","means,10,1,11,1,42,1,37,1,47,1,51,1,61,1,92,1,112,1","meant,58,1","mechanism,42,1,47,1,92,2","meglio,2,1,4,1","member,41,1,46,1,63,7","members,53,1,58,2,61,1,94,1","memcpy,11,1,47,8","memcpy.html,47,4","memcpy_s,59,5","memmove,59,1","memorize,57,1","memory,44,2,46,1,47,2,58,7,59,2,60,4,61,2,69,1,71,1","memorystream,12,1,71,11","memorystream.html,71,4","memove_s,59,1","memset,45,1,57,1,59,2","meno,8,1","menu,38,1","message,41,8,82,1,61,3,75,2,86,1,87,8,94,5","message.attachments.add,41,2","message.body,41,2","message.createmessage,75,2","message.deliverynotificationoptions,41,2","message.from,41,2","message.priority,41,2","message.subject,41,2","message.to.add,41,6","messagebox,86,3","messagebox.show,86,3,90,2,94,2","messageboxbuttons.ok,94,2","messageboxicon.information,94,2","messagefilter,87,1","messagefilter.html,87,4","messagefiltering,87,1","messages,12,1,37,2,39,2,61,1,87,2","messageversion.soap12wsaddressingaugust2004,75,2","messaggi,4,1","messaggio,4,1","meters,1,1","method,42,2,34,1,35,1,81,4,62,5,63,5,67,2,84,1,74,1,78,2,86,4,88,2,90,1,94,3,95,1","methodos,62,1","methods,12,5,36,2,81,1,57,4,58,1,62,5,63,1,78,11,86,9","metropolitana,81,1","mettete,8,1","mf,54,8","mfc,11,1,44,2,52,1,57,3","mi,4,1","microsoft,11,1,22,1,25,1,35,1,39,1,56,7,59,1,63,1,79,3,87,2,88,2,93,1,99,1,101,1,103,1","microsoft.ace.oledb.12.0,73,2,75,1","microsoft.jet.oledb.4.0,35,2,85,3,79,1,93,1,99,1","microsoft.net,60,1","microsoft.office.interop.access.dao.database,79,1","microsoft.office.interop.access.dao.dbengine,79,2","microsoft.visualbasic.dll,94,1","microsoft.visualbasic.interaction.beep,94,1","midi,20,3","miei,4,1,29,1","might,31,2,63,1,83,1","migliorare,25,1","migliori,2,1","millefoglie,24,1","milliseconds,61,2","min,48,4","min_diameter,94,2","mind,38,1,71,1,84,1,87,1,101,1","minimum,89,1","minus,58,2","minutes,34,1","minvalue,85,2","mistake,103,1","mix,57,1","mixedtools,53,5","mmm,94,2","mn,75,2","mn.test.count,75,1","mn_gethmenu,87,1","mnb,75,1","mnb.test.count,75,1","mobile,1,1,18,5","mobile.html,18,4","mod,94,2","mode,33,3,45,6,59,2","modecreate,44,1","moderead,44,1","modes,45,1","modewrite,44,1","modifica,4,1,21,1,29,1","modificare,8,1,21,2","modification,101,1","modified,44,1,85,1,48,1,66,1,100,1","modifier,63,1,64,2","modifiers,63,1","modifies,84,1","modify,35,1,51,1,61,1,63,1,66,2,86,1,96,1","modifying,78,1","modo,4,1,23,1","module,44,1,57,2,61,1","modulo,4,1,8,1,29,1","mofified,44,1","molto,25,1","momento,4,1,29,1","mondo,24,1","monete,24,1","monica@dmm888.com,41,2","monitored,61,1","monitoring,84,1","monodimensional,96,1","month,99,1","moreover,92,1,99,1","mostly,58,1","motion,101,1","motore,27,1","mouse,16,1,87,4,101,5","move,44,1,45,3,59,1","movefirst,99,2","movenext,99,1","moves,71,1","moving,1,1,59,1","msaccess,99,1","msado15.dll,61,1,99,2","msdn,63,1,95,1","ms-dos,55,2","msg,75,2,94,3","msg.getbody&lt,75,1","msg.headers.action,75,1","msg.writemessage,75,1","msgarrivedevent,94,9","msgarrivedeventhandler,94,6","msize,45,2","multiconntcplistenr,68,1","multidimensional,14,1,96,7","multiple,11,1,68,4,48,1,53,7,94,3","multithreaded,12,1,81,1,82,6,48,1","multi-threaded,61,1","multithreading,11,1,12,1,81,6,82,1,48,5,52,1,61,1,80,5","music,1,1,20,5","music.html,20,4","mutable,94,2","mutamento,24,1","my_msgarrivedcallback,94,2","my_msgarrivedeventcallback,94,2","myapp,61,1","myarray,96,1","mybase.finalize,94,1","mybook,96,2","mybox,96,2","mybuf,71,6","mybuf.length,71,4","mybutton,94,3","mybutton.click,94,2","mybutton_click,94,3","myclass,75,12","myclass&gt,75,1","myclasslibrarycpp,53,2","mycommand,85,2","mycommand.connection,85,1","myconnection,85,3","myconnection.createcommand,85,1","myconnstring,85,2","mydata.xml,43,3","mydatagridview_cellcontentclick,76,1","myerrorhandler,94,2","myfile.dat,94,4","myfile.docx,90,1","myfile.dwg,61,2","myfile.txt,94,4","myfilename,49,1","myflag,82,4,85,4","myftprequest,90,1","myftprequest.credentials,90,1","myftprequest.getresponse,90,1","myftprequest.method,90,1","myftprequest1,90,1","myftprequest1.credentials,90,1","myftprequest1.getresponse,90,1","myftprequest1.method,90,1","myidatagridview.rows,76,2","myimage,49,4","myinstance,51,3","myinstance-&gt,51,1","mymultiarray,96,1","mynewvalue,76,2","mypass,35,1,93,1","mypassword,61,1","myproc,57,7","myprocess,74,2","myprocess.password,74,1","myprocess.username,74,1","myprocess.useshellexecute,74,1","mystream,68,2","mystream.close,68,1","mystream.write,68,1","mystringwebresource,67,3","myusername,61,1","myvalue,76,2","mywebclient,67,2","mywebclient.credentials,67,1","mywebclient.downloadfile,67,1","mywebclient.uploadfile,67,1","n%s,61,2","n-10,86,2","n,40,1,68,1","name,31,1,35,2,41,2,43,5,44,2,68,1,81,1,45,2,51,2,57,3,61,14,66,6,74,1,75,2,86,7,90,2,94,30,99,1","named,35,1,50,1,57,1,66,1,70,1,96,1","named,91,1","names,67,1,94,12","names.copyto,94,1","names.length,94,1","names2,94,3","namespace,38,3,68,2,81,1,82,1,85,1,53,4,61,1,69,1,75,2,79,1,86,9,87,1,90,2,94,15","namespaces,10,1,38,6,94,1,112,1","namespece,38,1","naming,42,1","native,52,1,60,6,92,2","natural,58,1","naviga,6,1,7,1,30,1,105,1,106,1,104,1,107,1,108,1,109,1,110,1,111,1","navigando,8,2","necessary,82,1,52,1,58,2,94,1","necessit&agrave,8,1","necessity,57,1","needed,35,1,37,1,47,1,49,1,51,1,60,2,73,1,86,1,96,1","needs,57,1,87,1,98,1,102,1","nel,23,1,24,1,27,2","nell,4,1","nella,2,1","nelle,8,1","net,1,1,7,1,10,1,11,3,21,1,22,1,23,1,24,1,25,1,26,2,27,1,28,1,41,6,105,1,106,1,49,7,50,1,51,6,52,4,61,3,63,1,65,3,69,1,71,1,77,1,86,2,88,2,90,4,92,1,94,1,99,1,103,1,104,1,107,1,108,1,109,2,110,1,111,1,112,1","network,39,1,58,4","networkcredential,41,4,90,3","networking,1,1,16,5","networkingblog.html,16,4","never,66,1","new,42,9,36,1,37,1,39,1,41,16,43,6,44,3,68,11,81,12,82,15,85,11,45,3,46,3,47,4,49,2,53,1,54,2,55,1,57,3,58,2,59,6,60,8,61,1,62,1,63,3,65,4,66,3,67,5,69,4,71,3,73,7,84,4,74,2,75,13,78,1,79,3,86,5,87,1,88,2,90,9,93,2,94,40,96,1,99,1","newbuffer,59,12","newbuffer-bufferbefore,59,2","newline,97,1","newly,36,1,46,2,57,1","newmdb.mdb,79,4","newmdb2007.accdb,79,3","newmdbmdbcompacted.mdb,79,3","newrow,85,1","newsize,59,4","next,35,1,81,1,61,2,66,1,71,1,94,7,95,1","next_token1,60,10","nice,87,1,91,1","ninbuffersize,54,2","nine,72,1","nitems,96,2","nitems1,96,2","nitems2,96,1","nitems3,96,1","no_error,61,7","no_namespace,61,2,99,2","no-code-behind,38,5","noi,8,1","nome,4,1,8,2,29,1","non,3,1,8,7","none,61,12","nonfailing,61,1","nonsense,58,1","nonurgent,61,1","non-virtual,63,2","nonzero,54,4","norma,4,1,29,1","normal,61,2","normally,51,1,58,1,62,2,102,1","norton,10,1,112,1","nostre,2,1","nostri,4,4","nostro,2,1,3,1,7,1,9,1,28,1","note,1,1,42,1,34,1,40,1,85,1,53,1,58,1,61,2,79,1,94,2","notebook,101,1","notepad,101,2,103,3","notepad.exe,74,1","notes,11,2","nothing,81,1,72,1,93,3,94,6","notification,51,1","notizie,8,1","noutbuffersize,54,2","ntcreatefile,55,1","ntfs,55,7","ntft,55,1","null,12,1,68,2,82,2,85,2,45,1,47,2,48,1,54,24,55,12,57,4,59,11,60,6,61,36,67,1,83,6,79,5,86,2,88,6,90,4,94,6,97,1,99,8","null,48,2","nullable,12,2,88,11","nullable&lt,88,1","nullableconverter,88,3","nullableconverter.underlyingtype,88,1","nullabletypes.html,88,4","nullcolumn.html,83,4","nullptr,86,2","num,68,9,58,1,72,2,94,6","number,12,1,34,3,44,3,81,2,54,2,55,1,57,1,58,9,61,3,65,1,70,8,94,2,96,3,98,1,99,1,100,1","numbered,86,1","numberofrows,70,1","numbers,44,1,48,2,72,4","numbers1,72,2","nums,94,8","nums.length,94,2","nuove,26,1","nuovi,3,1","nuovo,7,1,21,1,22,1,23,1,24,1,25,2,26,1,27,1,28,1,105,1,106,1,104,1,107,1,108,2,109,1,110,1,111,1","o52,94,1","ob,85,1","ob.setallvalues,85,1","obbligatori,29,1","obj,85,2,58,7,94,6","object,11,1,42,14,37,1,43,1,44,10,68,3,81,3,82,1,85,2,46,2,48,8,50,1,58,17,62,2,63,1,65,2,66,1,69,1,70,1,71,3,74,2,75,3,76,1,79,2,86,12,87,2,88,2,90,7,94,15,98,1,99,4","object^&gt,86,1","objects,10,1,35,1,81,2,46,3,58,1,62,1,73,1,94,1,98,2,112,1","obscenity,103,1","observe,42,1,103,1","obsolete,43,1","obtain,36,1,57,1,98,1","obtaining,31,1","obviously,57,1,86,1,92,1","occasionally,58,1","occhiello,27,1","occured,42,1","occurs,58,2,61,1,64,1","oct,94,2","octal,94,1","odbc,99,1","odd,58,1","off,33,1,58,1","offers,37,1","offerti,8,1","office,79,2","offre,2,1,26,1","ofn_hidereadonly,44,2","oggetti,21,1","ogni,4,1,29,1","okay,61,1","old,58,1,79,1,94,6","oldsize,59,3","oldsize-bufferbefore-startaddress,59,2","oldsize-startaddress-bufferbefore,59,1","ole,35,2,99,2","oledb,35,1,85,2,79,1,93,5","oledbcommand,85,1","oledbcommandbuilder,85,2","oledbconnection,85,6,73,4,75,2","oledbdataadapter,85,4,73,4,75,2","omega,88,1","omit,75,1","onboard,40,1","once,31,1,36,2,39,1,68,1,81,1,51,1,53,1,57,1,58,1,61,1,84,1,86,2,99,2","one,34,2,35,1,81,4,57,2,58,8,61,1,62,1,63,1,69,1,72,1,84,1,89,2,94,5,95,1,98,1,99,1","online,1,1,8,2","onsubmit,102,1","opaque,57,2","open,11,1,35,1,39,1,43,2,44,4,81,1,45,5,49,1,51,3,55,1,56,1,57,2,69,1,87,1,99,3,101,2,103,3","open_existing,54,3,55,1,59,2","open1.filename.tostring,69,1","open,51,1","opened,81,1,51,3,99,1","opening,45,1,100,1","opens,81,2","openscmanager,61,6","openservice,61,4","opensuse,13,2,89,2","openwithlist,103,1","openwithprogids,103,1","operands,94,1","operating,58,1","operation,11,1,12,1,34,1,54,4,58,1,61,1,71,1,76,1,90,2,99,1","operationcomplete,90,1","operationexception,90,4","operations,11,1,45,3,46,1,54,4,90,8","operator,47,1,58,1","operator,94,1","operators,58,2,94,1","oppormi,4,1,29,1","opportunity,68,1,51,1,61,1","opposed,58,1","oppure,4,1,29,1","option,35,1,61,1,62,1,96,1","optional,94,6","options,32,1,41,1,92,1","options.xml,101,1","opzioni,3,1","orvar,94,1","oracle,66,4","orbs,37,1","orcas,85,1","order,1,1,11,1,32,1,36,2,39,2,40,2,81,1,85,2,45,1,50,1,51,2,53,4,57,5,58,1,61,3,67,1,84,1,79,1,86,2,87,1,91,1,92,1,96,1,99,1,100,1","ordering,61,1","orders,93,1","ordinal,57,1","ordinare,8,1","ordinarne,30,1,105,1,106,1,104,1,107,1,108,1,109,1,110,1,111,1","ordinate,8,1","ordine,8,1,29,2","ordini,28,1","ore,4,1","ored,55,1","orelse,94,2","organization,2,1","organizationemail,33,3","organizzazioni,8,1","oriented,26,1","origin,85,3,47,4","origin.mdb,85,1","original,47,1,58,2,63,1,69,1,75,1,78,1,103,1","os,1,1,17,5","ostream,58,1","otherwhise,62,1","otherwise,48,1,61,1,69,1,78,1,86,1","ottimizzato,23,1","ottimo,25,1","ourselves,44,1","out.alice.it,41,1","output,11,2,44,5,45,5,46,1,51,1,71,1","outside,46,1,58,1","overlapped,54,2","overloads,94,1","overridden,63,1","override,82,1,50,1,54,1,62,4,63,5","overrides,94,1","overriding,62,1,63,3,73,1","overwritten,45,1,66,1","own,41,1","ownerdrawfixed,50,1","ownership,82,1","owns,81,2","packed,68,1","page,8,1,10,1,42,13,31,2,34,3,38,2,43,2,51,1,96,6,112,1","page.clientscript.registerclientscriptblock,43,1","page.ispostback,42,10","page.registerstartupscript,43,1","page_databinding,42,1","page_error,42,1","page_init,42,2","page_initcomplete,42,2","page_load,42,2,43,1","page_loadcomplete,42,2","page_preinit,42,2","page_preload,42,2","page_prerender,42,2","page_prerendercomplete,42,2","page_readwrite,59,2","page_savestatecomplete,42,2","page_unload,42,1","pagenumber,96,1","pages,10,1,112,1","pagina,5,5,8,1","pain,41,3","pair,98,1","par,65,2","parallel,68,1,84,1","parallels,101,1","paramarray,94,1","parameter,68,1,51,1,57,1,61,4","parameterizedthreadstart,68,1,65,2","parameters,12,2,39,1,57,2,61,9,65,5,66,4,94,1","parameters.,94,1","parametri,26,1","params,94,1","parent,61,2","parola,29,2","parole,27,1","part,36,1,68,3,58,2,99,1","part_1_size,55,5","part_1_size.quadpart,55,4","parte,8,1,27,1","partial,13,1,42,1,81,1,85,1,47,1,86,1,87,1,89,1","particolari,8,1","particularly,58,1","partition,55,18","partition_entry_unused,55,1","partition_extended,55,2","partition_fat_12,55,1","partition_fat_16,55,1","partition_fat32,55,1","partition_fat32_xint13,55,1","partition_huge,55,1","partition_ifs,55,3","partition_information_ex,55,2","partition_ldm,55,1","partition_ntft,55,1","partition_prep,55,1","partition_style_mbr,55,6","partition_unix,55,1","partition_xenix_1,55,1","partition_xenix_2,55,1","partition_xint13_extended,55,1","partitionate,55,1","partitioncount,55,1","partitionentry,55,34","partitionlength,55,4","partitionnumber,55,4","partitions,11,1,55,8","partitionstyle,55,5","partitiontype,55,1","partiton0,55,1","partly,42,1","pass,68,1,82,1,90,1,94,6","passdata.html,43,4","passed,57,1,58,1,61,3,94,1","passedfrom,94,1","passing,10,1,12,1,37,1,43,5,65,5,112,1","password,3,2,8,1,21,1,31,1,35,2,41,2,61,1,67,1,69,3,74,6,90,2,93,1","password.appendchar,74,8","passwordrecovery,39,1","passwords,66,1","past,37,1","paste,56,1","pasted,48,1","path,55,1,61,1","patterns,39,1","pause,48,1","pc,1,1,6,1,9,3,16,1,30,2,35,1,100,1,101,4","pcs,58,2","pdf,95,2","peek,71,2","pen,54,4","pending,61,1","pensato,24,1","people,37,1","per,2,3,3,1,4,2,8,3,9,1,21,1,22,3,23,3,24,3,25,1,26,4,27,1,29,4","perform,11,2,68,1,44,4,47,3,49,4,57,1,58,1,61,7,73,1,75,1,87,1,90,1,94,1,99,2","performance,7,1,61,2,87,1","performed,82,1,45,1,58,1,61,1,66,1,86,6","performing,34,1,61,1","performs,68,1,84,1","periodically,61,1","permesso,4,1","permette,22,2,23,1,25,1,27,2","permetter,21,1,28,1","persist,35,1,85,3,73,2,75,1,93,1,99,2","persistent,99,1","person,81,1,94,2","personali,8,6","personalize,61,1","personalizzata,28,1","personalizzate,27,1","personalizzati,25,1","per-thread,61,1","pguid,98,2","phase,60,2","phisical,11,1","physical,55,1","physicaldrive2,54,2,55,1","pi,61,4,63,5,94,2","pi.hprocess,61,1","pi,23,1","pick,58,2","picture,83,1","piece,1,2,60,1,89,1","pieces,99,1","pink,94,2","pinvoke,92,10","pinvoke.html,92,4","place,11,1,66,1,99,1","placed,38,1,82,1,64,1,69,1,99,1","platform,14,1,47,1,55,1,92,2,97,1","plugged,101,1","plus,68,2,45,2,59,1","pluto,66,1","pm,94,1","poi,23,1","point,35,1,39,1,51,2,55,1,56,1,57,2,61,3,67,2,86,4,103,1","pointer,44,1,45,3,46,1,47,3,57,7,58,15,59,2,61,3,71,1","pointers,11,2,58,5,61,1","pointer-to-pointer,58,1","points,58,1","politica,2,1","pool,68,1,61,1","popular,51,1","populated,70,1","populates,51,1","port,40,1,68,4,61,1,62,1,100,4","porte,22,2","portnumber,100,1","ports,68,1,91,1","position,10,1,32,1,44,2,100,1,112,1","positioning,32,1","possa,8,1","possiamo,4,1","possibile,4,1,23,1,25,1,26,1","possibilit,24,1","possible,85,1,53,1,54,1,58,1,61,1,65,1,66,1,69,2","possibly,58,1","possono,8,1","post,67,1","postback,42,1","post-test,94,2","potential,58,2","potentially,81,1","potentissimo,21,1,27,1","potr&agrave,29,1","potrebbe,8,1","potrete,21,4,24,1,28,1","power,46,4,47,2,69,1,86,1,94,1,101,1","powerful,58,1,71,1,94,1","powerlevel,94,8","powerpc,55,1","practice,74,2","practices,1,1","pre,94,1","precisa,26,1","precisely,58,1","precision,58,1","precludes,64,1","preface,96,1","prefer,61,1","preferenze,8,1","preferred,94,1","prefiltermessage,87,1","prefix,94,4","pregati,8,1","preghiamo,4,1,8,1","prego,4,1,29,1","preinit,42,2","preload,42,2","premere,3,1","premium,7,1,21,1,22,1,23,1,24,1,25,1,26,1,27,2,28,1,105,1,106,1,104,1,107,1,108,1,109,1,110,2,111,1","prender,8,1","prepare,55,1","preparedata,53,1","preparedataandreturn,53,1","prerender,42,2","prerendercomplete,42,2","present,43,1,85,2,70,1,79,1,84,1","presenta.html,2,4","presented,88,1","presents,57,1","preserve,60,2,94,2,96,4","preserved,96,1","preserves,58,2","preserving,58,1","press,68,1,86,2","pressed,81,2","prestazioni,2,1","presumably,57,1","pre-test,94,2","pretty,40,1","prevent,64,1","prevented,40,1","previous,11,1,45,1,73,1,79,1","previsto,8,1","preziosi,9,1","prezzo,8,1,9,2,21,1,22,1,23,1,24,1,25,1,26,1,27,1,28,1,30,1,105,1,106,1,104,1,107,1,108,1,109,1,110,1,111,1","price,1,1","prima,3,3,21,1","primary,51,1,55,1","primitive,11,1,58,1,94,1","print,48,3,72,1","printf,45,1,48,5,61,16,99,16","printing,48,1","prints,48,1,58,2,94,25","prior,65,1,69,1","priority,42,1,82,1,61,3","privacy,1,1,4,1,8,3,29,1","privacy.html,8,4","private,68,1,81,13,82,19,85,1,46,1,50,1,53,3,62,5,65,1,76,1,84,1,86,14,87,3,90,6,94,7","private_powerlevel,94,1","pro,7,1,21,2,22,1,23,1,24,1,25,1,26,1,27,1,28,1,105,1,106,1,104,2,107,1,108,1,109,1,110,1,111,1","probabilit,24,2","probably,61,1","problem,32,1,81,1,57,4,58,2,80,1,101,8","problems,1,1,12,1,81,1,55,1,80,4","procadd,57,9","procedure,85,1,54,1,57,1,84,1","proceed,59,1,60,2","proceeding,57,1","process,12,1,31,2,44,2,48,1,57,2,61,9,74,7","process.h&gt,48,1","process.start,74,1","process_information,61,2","processed,87,1","processes,37,1","processing,58,1","processor,48,3,87,1,103,1","processstartinfo,74,4","prodotti,4,1,8,2,29,1","prodotto,8,2,23,1,24,1,26,1,27,1,28,1","produces,61,1","product.asp,9,4,21,4,22,4,23,4,24,4,25,4,26,4,27,4,28,4","productid,9,4,21,4,22,4,23,4,24,4,25,4,26,4,27,4,28,4,30,8,105,8,106,8,104,8,107,8,108,8,109,8,110,8,111,8","products,40,1","proficently,73,1","proficient,12,1,85,4,46,1,51,1","profondit,24,1","progannuo,85,2","proget,48,1","program,68,1,51,1,57,5,58,2,61,2,75,1,79,1,94,1,99,1,103,1","programma,28,1","programmer,1,2,62,1","programmi,99,1","programming,58,1,92,2","programs,51,1","progressi,27,1","project,36,3,48,1,51,3,57,7,61,1,89,1","promozione,4,1,29,1","prompt,36,1","pronounced,73,2,75,4","pronto,9,1","pronuncia,25,1,27,1","proper,81,1","properly,58,1,86,1","properties,35,1,81,2,82,1,55,1,57,1,62,3,74,1,86,2,93,4,94,1","propertiy,86,1","property,81,2,85,1,50,1,51,1,63,2,70,1,73,1,74,4,86,2,87,1,94,2","propri,4,1,29,1","proprietario,27,1","proprio,23,1","prosodia,25,1","protected,42,14,43,1,82,1,53,5,63,1,86,2,94,5","protecting,45,1","protection,10,1,40,5,112,1","protector,40,1","protocol,39,1","provide,37,1,81,1,51,1,60,1,62,3,67,1,74,1","provided,38,1,74,1","provider,35,3,40,1,41,3,85,5,73,2,75,1,79,1,93,1,99,2","providername,35,1,66,2","provides,37,1,44,1,61,1","providing,41,1,44,1,61,1,65,1,67,1,99,1","proxy,36,5","pt,59,13","pu&ograve,8,2","public,42,2,33,1,38,1,68,1,81,2,82,2,85,5,46,1,51,1,53,18,62,4,63,13,67,1,75,5,84,1,86,8,87,5,88,1,90,9,94,17","pump,87,1","pumped,87,1","pure,21,1,26,1,46,4","purpose,31,1,40,1,61,8,69,1","purposes,57,1","puts,58,1","putting,42,1","quali,8,3,23,1","qualit&agrave,2,1","qualora,8,1","qualunque,25,1","quando,8,1","quanti,30,1,105,1,106,1,104,1,107,1,108,1,109,1,110,1,111,1","quantit&agrave,30,1,105,1,106,1,104,1,107,1,108,1,109,1,110,1,111,1","query,21,1,72,2,73,3,99,2","querying,73,4,99,1","queryservicestatus,61,1","question,92,1","questo,8,1,22,2,23,1,24,2,26,1,27,2","queue,81,2","qu,3,1","quick,94,2","quit,89,1","quite,58,1","quote,94,1,101,1","r.equals,84,2","r.match,94,2","raccoglie,8,1","raccogliere,8,1","raccolta,8,1","raise,94,1","raiseevent,94,1","rand,48,1","random,48,3,55,1","range,58,1,88,1","rapporti,4,1,29,1","rappresenta,27,1","ras,7,1,21,1,22,1,23,1,24,1,25,1,26,4,27,1,28,1,105,1,106,1,104,1,107,1,108,1,109,2,110,1,111,1","rather,13,1,58,2,61,1,89,1","rb,59,1","rd,75,2","rdp-tcp,100,1","re,58,7","reach,1,1,57,1","reached,68,1","react,79,1","read,44,4,45,4,49,2,54,2,58,1,59,3,69,1,71,1,75,2,79,1,94,5","readbytes,90,5","reader,75,2,94,4","reader.close,94,2","reader.readline,94,7","readfile,54,2","readiness,57,2","reading,11,1,44,1,45,6,49,5,58,1","readonly,94,2","reads,58,1","ready,39,1,48,1,57,1,61,1","real,59,3,61,1","realizzazione,4,1,29,1","really,94,2","realword,56,9","reason,58,3","reboot,103,1","recall,58,2","recalling,82,1","receive,68,2","received,40,4,68,3,89,1","receives,58,2,61,1","receiving,10,1,34,1,40,3,68,2,112,1","recent,58,1,89,1","recipients,41,1","recognized,51,1,57,1","recommendation,59,1","recommended,35,1,61,1,74,1","recompiling,78,1","record,99,2","recordcount,99,2","records,85,1,99,3","recordset,99,11","recordsetptr,99,1","recover,60,2","recupero,6,1","red,50,2,94,2","redim,94,1,96,6","redirecthandle,87,3","redirection,40,1","ref,53,2,57,1,86,1,87,1,94,2","referenc,79,1","reference,1,2,10,5,11,5,12,5,13,5,14,5,15,5,16,5,17,5,18,5,19,5,20,5,42,4,31,4,32,4,33,5,35,1,36,1,37,1,38,6,40,4,43,5,81,1,82,1,85,1,49,1,50,1,51,1,55,1,57,1,59,1,60,2,62,4,63,4,64,4,65,4,66,1,71,1,83,1,74,4,76,1,77,1,78,1,79,3,80,1,84,1,86,1,87,1,88,1,89,4,90,1,91,5,92,1,93,1,94,8,95,1,96,5,97,5,112,5","references,36,1,38,1,66,1,93,1","referred,51,1","refers,34,3,81,1","refresh,86,1,103,1","refuse,34,1","refusing,34,1","regex,94,3","region,46,1,47,2,86,1","regions,47,1","register,1,1,3,1,4,1,6,1,7,1,9,1,21,1,22,1,23,1,24,1,25,1,26,1,27,1,28,1,29,1,30,1,43,1,105,1,106,1,61,2,98,1,104,1,107,1,108,1,109,1,110,1,111,1","register.asp,29,8","registereventsource,61,1","registerservicectrlhandler,61,4","registerwaitforsingleobject,61,1","registrando,8,1","registrare,8,1","registrarle,8,1","registrarvi,3,1","registratevi,29,1","registrati,3,3,8,1","registration,10,1,112,1","registrato,29,1","registrazione,3,1,8,1","registry,98,2,100,1,103,2","regular,94,1,102,1","regulatory,37,1","reinterpeting,58,1","reinterpret,58,9","reinterpret_cast,11,1,58,3","reinterpret_cast&lt,58,3","reinterpreted,58,2","reinterpreting,58,1","rejecting,34,1","relate,42,1","related,57,1","relates,81,1","relating,87,1","relativi,8,1","relazione,8,1","release,81,1,66,1","relevant,34,3","reliability,39,1","rely,41,1","rem,94,1","remain,61,1","remaining,84,1","remarks,61,3","remember,36,1,44,1,53,1,61,2,66,1,79,1,96,1,99,1","reminder,14,1,40,1,96,4","remote,16,1,26,1,68,1,58,3,61,1,100,7","remoteaccess.html,100,4","remoteuri,67,2","removal,61,1","remove,58,1,61,4,99,2","removed,85,1,61,1","removehandler,94,1","rename,61,1,99,2","repeat,74,8","replace,94,1","report,34,1,61,3","reported,61,1","reportevent,61,1","reports,61,1","reportsvcstatus,61,14","reposition,45,1","repository_path,68,5,62,1","repositorypath,68,1","represent,58,1,96,4","representation,15,1,58,11,96,1,98,5,99,1","representations,58,1","represented,58,2","represents,58,2","request,34,1,37,1,90,14","request.begingetrequeststream,90,1","request.credentials,90,1","request.method,90,1","requested,31,1,39,1,61,1","requeststream,90,2","requeststream.close,90,1","requeststream.write,90,1","require,94,1","required,41,1,61,2,86,2,99,2","requirements,37,1","requires,58,1,94,1","requires,57,1","rescue,12,1,43,1,66,1,76,4","rescued,68,2","resembles,63,1","reserved,94,1","reset,81,4,61,1","resets,81,2","resetted,81,1","reside,57,1,61,1","resides,47,1,67,1,100,1","resize,94,2","resource,31,2,48,1,67,1,86,2","resources,81,1,86,2,94,2","resp,90,2","resp.close,90,1","resp.statusdescription,90,1","resp1,90,1","resp1.close,90,1","resp1.statusdescription,90,1","respectively,58,1","responsabile,4,1","response,67,1,90,4","response.close,90,1","response.statusdescription,90,1","response.write,42,1","responsearray,67,2","restore,17,1,54,2,103,5","restricted,54,1","result,85,3,55,4,58,2,59,1,69,4,75,1,92,1,94,1","result.txt,56,2","resulting,89,1","results,63,1,72,1","resultsecure.txt,56,2","resumelayout,86,1","resx,86,1","ret,45,1,57,3,59,1,61,1","rete,22,1","retrieve,33,1,66,4","retrieving,12,1,70,1","retry,102,1","return,14,1,41,4,85,2,46,1,51,1,53,4,54,2,55,3,56,1,57,3,60,2,61,24,63,4,87,4,88,2,90,8,94,4,97,2,98,1,99,2,102,2","return,57,1","returned,82,1,54,2,61,1","returning,61,1","returns,82,1,45,1,48,1,54,4,57,2,58,1,60,2,61,3,94,2","reuse,71,1","reverse,76,1,84,4","reverts,54,1","rewind,45,2,94,2","rewrite,55,1","rewritepartition,55,6","rewriting,58,1","ricerca,2,1,7,1,27,1","ricevere,28,1","riceverete,9,1","richiesta,8,1,22,1","richieste,4,1","richiesti,4,1","riconoscimento,27,1","rid,58,1","ridotto,8,1","righe,8,1","right,35,1,51,1,57,2,58,1,96,1","rights,61,2","riguardano,8,3","rinnovamento,2,1","rino,4,1,8,1","ripetere,29,1","riportati,4,1,29,1","riprodotti,24,1","risks,89,1","risposta,4,1","risultato,2,1","ritagliate,23,1","ritorna,2,1,8,1","ritorno,8,2","riutilizzabile,26,1","room,59,1,96,1","rootwebaddress,33,3","rounding,94,1","routed,37,1","routine,82,1","routines,59,4","row,70,5,96,6,97,1,99,1","row1,85,3","row1.itemarray,85,1","row2,85,2","rowd,85,2","rowd.isnull,85,1","rowo,85,2","rowo.isnull,85,1","rows,12,1,85,7,70,3,94,1","rows.add,85,1","rows.count,85,1","rows-1,94,1","rowstate,85,1","rpm,89,1","rs,99,3","rs-&gt,99,16","rs.createinstance,99,1","rule,89,1","rules,37,2","run,51,5,57,1,61,1,91,1","running,42,1,48,1,58,1,61,3,98,1,101,1","runs,58,1","runtime,42,1,58,3,61,1,79,2","run-time,63,1","rw,43,4","rw1,43,4","s.area,63,1","safe,43,1,81,1,82,1,59,1,69,1","safely,47,2","safety,81,2","salvarle,23,1","same,31,1,45,2,46,1,47,1,48,1,54,2,55,1,57,1,58,9,59,1,67,1,69,2,84,1,86,2,91,1,94,10","sample,11,1,12,3,14,1,42,2,41,2,43,1,81,4,82,3,85,1,44,1,46,1,48,1,52,2,53,1,57,3,60,1,61,5,72,7,73,5,75,6,77,7,78,1,79,2,80,3,84,3,87,2,92,2,99,2","sample.vce,59,3","sample,57,1","samples,41,1","sar&agrave,2,1,4,1","saranno,8,1","sarete,28,1","satisfy,87,1","save,58,1,66,5,71,1,99,2,101,1","saved,75,1,99,1","savestatecomplete,42,2","saving,58,1","say,58,3,86,1,89,2,96,1","say,57,1","sayhello,94,6","saying,89,1","sb,43,1,69,1","sb.append,43,3,69,1","sb.tostring,43,2,69,1","sbyte,94,2","sc_handle,61,6","sc_manager_all_access,61,3","scanner,23,1","scaricare,8,1","scelte,8,2","scenario,41,2","scenarios,57,1","schema,61,1,86,1","schermo,23,1","school,94,9","school.chars,94,1","school.tochararray,94,2","schscmanager,61,17","schservice,61,16","scm,61,10","scontato,8,1","scope,49,1,61,1","scopo,8,1","script,43,2,93,3","script&gt,43,1","scritto,26,1","scrivendo,4,1,8,1,29,1","scrollable,11,1,50,5","scrupolosamente,8,1","sd,61,2","sd.lpdescription,61,1","se,2,1,3,3,8,4,9,1","sealed,12,1,64,10","sealedclasses.html,64,4","search,102,1","sebastian,20,3","second,36,1,41,1,43,2,47,2,48,1,51,2,57,1,61,2,71,1,86,2,90,1,96,2","second,57,1","secondo,28,1","seconds,34,1,81,1","secret,66,1","section,10,1,11,1,33,2,34,1,35,1,48,6,66,2,101,1,112,1","sections,34,1","sectors,55,2","sectorsize,55,1","secure,11,1,56,6","securestring,74,2","security,33,1,35,1,85,3,61,2,73,2,75,1,79,1,93,1,99,3","see,1,1,42,1,33,1,51,1,57,5,58,1,59,2,61,1,66,1,69,2,86,1,94,2,103,1","seek_end,45,1,59,1","seekorigin.begin,71,2","seem,58,1,101,1","seen,63,1","segnalare,8,1","seguente,8,1","seguenti,8,1","select,85,2,72,2,73,4,75,2,94,2,99,1","selected,11,1,50,7","selecting,44,1,57,1","selection,50,1,72,1,73,1","selezionare,3,1","semantics,58,2","semicolon,61,1","seminari,29,1","semplice,21,1,25,1,28,1","sempre,9,1","send,41,1,68,1,58,2,61,2","sender,42,14,41,1,43,1,81,2,82,1,85,1,50,1,76,1,86,10,87,2,94,2","senders,68,1","sending,10,1,37,1,41,6,58,2,90,1,112,1","sends,11,1,58,1,61,6","sensi,4,1,29,1","sent,41,2,68,1,58,1,61,1","senza,8,4,9,4,21,5,22,4,23,4,24,4,25,4,26,4,27,4,28,4","separate,61,1","separator,11,1,60,1","seps,60,10","sequences,94,1","ser,75,1","ser.readobject,75,1","ser.writeobject,75,1","serch,1,1","serializableattribute,75,1","serialization,12,1,75,7","serialize,75,2","serialized,75,2","serie,26,1","seriet&agrave,2,1","serious,89,1","server,8,2,10,1,11,1,26,1,34,3,36,1,39,11,41,10,68,3,54,1,57,1,61,5,66,3,67,2,90,2,98,1,99,1,112,1","server.mappath,41,2,43,3","servers,39,1","service,11,1,34,1,36,3,37,7,39,2,41,2,61,80","service.asmx,36,1","service.wsdl,36,4","service_accept_stop,61,1","service_all_access,61,2","service_auto_start,61,1","service_change_config,61,1","service_config_description,61,1","service_control_interrogate,61,1","service_control_stop,61,2","service_demand_start,61,1","service_description,61,1","service_disabled,61,1","service_error_normal,61,1","service_running,61,3","service_start_pending,61,4","service_status,61,5","service_status_handle,61,1","service_stop_pending,61,2","service_stopped,61,9","service_table_entry,61,1","service_win32_own_process,61,2","servicecode,61,3","servicemain,61,4","service-oriented,10,1,37,8,112,1","services,10,1,26,1,35,1,36,4,37,9,39,2,55,2,61,3,112,1","servicesactive,61,2","service-specific,61,2","servizi,2,1,8,1","servizio,3,1","session,34,5,43,2","sessione,8,1","sessionstate,34,3","set,42,2,32,1,34,3,81,7,50,1,51,2,55,1,57,1,61,5,74,2,76,1,90,4,93,7,94,8","setcompatibletextrenderingdefault,51,2","setendoffile,59,1","setevent,61,1","setfilepointer,59,2","sets,61,1","setservicestatus,61,2","setting,35,1,61,1,66,1,74,1,87,1","settings,12,1,34,1,85,1,57,1,61,2,66,5","settingscsharp.html,66,4","settled,51,1","setup,51,5,55,1","seven,72,1","several,37,1,58,1","sforzi,7,1","sforzo,27,1","sh,99,2","share,48,1","shared,81,1,94,3","sharedenynone,44,1","short,45,4,58,3,59,1,72,1,94,4,99,5","short-circuit,94,2","shorter,58,2","should,31,1,34,1,41,1,58,1,61,5","show,11,1,53,4,73,1,86,4","showing,73,1","shown,51,1,57,2,78,1","shows,42,1,44,1,45,1,46,1,49,1,57,1,75,1,80,1,84,1,87,1","si,8,2,22,1,27,1,61,5","si.cb,61,1","si.lpdesktop,61,1","sia,8,1","sicurezza,9,1","side,57,3,84,1,100,1","sides,58,1","siete,3,4,8,2","sign,58,1","signal,81,2,82,1,61,2,90,1","signaled,61,2","signalled,81,2","signalling,82,1","signals,61,2","signature,55,1,57,4,86,1","significative,96,1","signin.asp,3,4","simple,35,1,37,1,39,1,81,1,82,1,51,1,56,1,57,2,61,2,63,1,66,1,71,1,96,1,99,1,103,1","simplicity,57,1,92,1","simplify,61,1","simply,35,1,51,1,61,2,79,4","simulate,61,1","simulates,101,1","simulation,84,2","simultaneous,68,1","simultaneously,68,2","since,58,2,88,1,94,1,101,1","single,53,1,57,1,58,1,94,13","single&gt,88,1","single-threaded,61,1","sintesi,27,3","sit,42,1","site,1,1,39,1,63,1","siti,23,1","sito,4,1,8,2,23,1","situation,40,1,57,4,103,1","situations,58,1","six,72,1","size,11,2,34,3,44,1,45,3,47,3,55,2,57,2,58,5,59,1,60,6,61,1,86,9,94,11,96,1","sizeaudio,57,3","sized,50,1","sizef,86,1","sizeof,44,4,55,3,58,1,60,16,61,3","sizes,44,2,58,5","skeleton,11,2,52,5,61,2","skeletonmanunman.html,52,4","skeletonservice,61,4","skeletonservice.cpp,61,1","skeletonwin32service.html,61,4","sleep,48,4,61,3","slightly,96,1","slog,1,3","small,89,1","smaller,58,2","smtp,10,3,11,1,39,13,40,9,41,11,61,3,112,3","smtp.dmm888.com,41,1","smtp.myemailserver.it,61,1","smtpantivirus.html,40,4","smtpclient,41,4","smtpdeliverymethod.network,41,2","smtpmail.html,41,4","smtpserver2008.html,39,4","snippet,11,1,54,2,61,1","snmp,39,1","snow,1,1","soa,10,1,26,1,37,6,112,1","soa.html,37,4","societ&agrave,8,1","socket,68,4,62,1","socketflags.partial,68,2","socketforclient,68,3","socketforclient.close,68,1","socketforclient.connected,68,1","socketforclient.receive,68,3","sockets,12,1,68,5,89,1","socketscsharp.html,68,4","soddisfare,4,1","software,1,2,2,1,4,1,6,1,7,3,8,1,9,1,21,2,22,2,23,2,24,2,25,2,26,2,27,2,28,2,30,1,105,2,106,2,98,1,103,1,104,2,107,2,108,2,109,2,110,2,111,2","soggetto,24,1","solidbrush,50,2","solution,11,1,81,1,82,1,51,1,52,5,57,5,60,1,61,1,77,1,78,1,79,2,80,1,84,1,86,1,87,1,101,1","solutions,2,1","soluzioni,2,2","solve,80,1","solved,32,1","someone,81,1","something,1,1,69,1,94,2,101,1","sometimes,58,1,70,1,86,1,87,1,95,1","son,94,2","sono,8,1,24,1,27,1,29,1","soon,43,1,61,1,89,1","sopra,4,1,29,1","sotto,3,1,22,1","sottostante,4,1","soundstriphon,44,3","source,35,1,85,3,47,1,66,1,73,2,75,1,79,1,91,2,93,1,99,3","sourceforge.net,89,1","sp1,16,1,57,1,101,1","space,57,1,58,1,99,2","spamman,94,2","special,57,1,78,1,94,1","specific,11,2,12,1,81,1,48,4,51,3,57,1,60,1,61,1,66,1,72,1,87,2,95,1,101,1","specification,37,1","specified,68,1,90,2","specifier,53,1","specifiers,45,1","specifies,55,13,90,1,99,1","specify,35,1,55,1,100,1","speedstep,101,1","spelled,98,1","sphere,63,4","split,11,1,60,6","splitstring,60,5","splitstring.html,60,4","splitstringw,60,1","splitted,60,2","splitting,60,1","sprintf_s,99,6","sql,66,3,99,14","sqloledb.1,99,1","sqrt,99,2","sserver,68,8","sspi,99,1","st,43,2","st.close,43,1","sta,61,1","stage,61,9","stampe,24,1","standard,52,1","start,11,1,12,1,68,1,85,1,47,1,61,5,65,1,73,2,74,7,75,1,92,1,94,1,101,1","start,94,1","startaddress,59,13","started,81,1,82,1,61,1,65,1","starting,82,1,61,1,74,1,96,1","startingoffset.quadpart,55,4","startprocess.html,74,4","starts,85,1","startservice,61,2","startservicectrldispatcher,61,2","startswith,73,2,75,1","starttime,82,2","starttime.ticks,82,1","startup,61,1,66,2","startupinfo,61,2","state,34,2,50,1,61,6,69,2,90,5,98,1","state.filename,90,2","state.operationcomplete,90,1","state.operationcomplete.set,90,3","state.operationexception,90,4","state.request,90,1","state.request.begingetresponse,90,1","state.request.endgetrequeststream,90,1","state.request.endgetresponse,90,1","state.statusdescription,90,2","statement,94,2,99,5","statements,94,1","stathread,82,1","stathreadattribute,51,2","static,68,1,82,1,44,2,48,6,58,6,61,2,63,2,72,1,75,1,78,1,79,1,86,1,88,1,90,3,94,4","static_cast,11,1,58,2","static_cast&lt,58,1","statistiche,4,1,29,1","statistics,39,1","status,61,9,90,3,94,1","status.pass,94,3","status.pass.tostring,94,1","statusdescription,90,1","stdafx.h,46,1,54,2,55,1,56,1,57,1,61,1,99,1","stdio.h&gt,54,2,55,1","steli,24,1","step,35,2,51,4,57,2,91,2,94,1","steps,39,1,51,1","stessi,21,1","stick,52,1","stile,60,1","still,85,1,58,1,99,1","sting,97,1","stop,61,9,94,4,101,1","stopis,94,1","stopped,61,2","stopping,61,1","stops,61,1,64,1","store,33,1,35,1,54,1,69,2,71,3,90,1,99,1","store.close,71,1","store.write,71,1","stored,36,1,58,2,66,1,69,1","stores,58,1","stotal,94,2","stprintf_s,61,1","str,94,6","straight,57,1","strangelove,94,1","strategy,85,1,87,1","strategy.in,92,1","strcpy_s,60,4","stream,71,1,90,8","stream.read,90,1","streamreader,94,4","streamwriter,85,1,94,2","streight,60,1","stremail,102,2","stremail.search,102,1","strictly,57,1","string,10,1,11,1,14,1,33,3,35,10,41,7,43,1,68,4,85,3,45,1,51,5,57,1,58,1,60,8,61,4,62,2,66,3,67,4,69,1,72,5,73,2,75,4,76,3,79,1,90,7,94,58,95,1,97,2,99,2,112,1","string&gt,73,4,75,3","string1,60,2","stringmascot,94,1","stringbuilder,69,2,94,3","stringname,53,2","strings,61,5,90,1,94,1","stringtosplit,60,16","strlen,60,8","strongly,35,1","strsafe.h&gt,61,1","strtok_s,60,4","struct,75,1,94,1","structs,64,1,94,1","structure,33,1,54,2,55,1,58,3,61,3,94,3","structures,58,2","strumento,9,1","stu,94,3","stu.name,94,2","stu2,94,2","stu2.name,94,4","stu,94,1","studentrecord,94,9","studiato,23,1","studied,48,1","studio,10,1,22,1,26,1,32,2,36,2,85,2,51,1,52,1,53,1,57,1,63,1,79,1,112,1","studiosi,24,1","study,57,1,89,1","su,7,1,8,1,21,1,22,1,23,1,24,1,25,1,26,1,27,1,28,3,105,1,106,1,104,1,107,1,108,1,109,1,110,1,111,2","sub,94,17","subject,41,4,61,1","sub-key,103,1","subkeys,103,1","submission,34,1","submitted,31,1","subscribing,42,1","subsequent,61,2","substring,82,1,94,1","success,55,1,94,2","successfully,85,1,54,4,61,3,79,1,91,1","sue,4,1,29,1,94,6","sufficient,68,1,61,1,100,1","sufficiently,58,1","suitable,63,1,97,1","suits,99,1","sul,28,1","sulla,4,1,8,2,29,1","sulle,6,1,7,1,24,1,30,1,105,1,106,1,104,1,107,1,108,1,109,1,110,1,111,1","sum,12,1,34,1,69,14,94,9","summary,58,1,86,1","summary&gt,86,8,94,6","superhero,94,20","superhero.rest,94,2","support,1,1,3,1,4,1,6,1,7,1,9,1,21,1,22,1,23,1,24,1,25,1,26,1,27,1,28,1,29,1,30,1,105,1,106,1,52,3,57,2,61,1,79,6,80,1,86,1,99,1,104,1,107,1,108,1,109,1,110,1,111,1","supporta,2,1","supported,98,1","supporto,4,2,8,2","supporto.asp,4,4","suppose,58,3,103,1","supposed,51,2,79,1","sure,61,1","surely,92,1","surf,1,1,9,1,21,1,22,1,23,1,24,1,25,1,26,1,27,1,28,1,103,1","suse,89,2","suspendlayout,86,1","svc_error,61,2","svcctrlhandler,61,5","svcdescription,61,2","svcdispname,61,6","svcinit,61,6","svcinstall,61,3","svcmain,61,8","svcname,61,8","svcremove,61,3","svcreportevent,61,5","sviluppatori,22,1,23,1,26,1","sviluppo,27,2","svolgete,8,1","svr,99,1","switch,61,1,94,1","sync,101,1","syncronization,81,2","syntax,10,1,38,1,68,1,49,2,57,2,112,1","system,13,1,42,1,68,1,81,1,82,1,85,1,50,4,51,2,53,1,58,2,61,5,63,1,75,1,79,1,86,47,87,1,89,1,90,1,94,2,99,2,100,1,103,1","system.codedom&gt,33,2","system.collections,82,1,75,1","system.collections.generic,42,1,68,1,81,1,85,1,63,1,75,1,79,1,86,1,87,1","system.componentmodel,81,1,82,1,85,1,86,1,87,1","system.componentmodel.container,82,1","system.configuration,66,2","system.data,38,1,81,1,82,1,85,1,75,1,86,1,87,1","system.data.datarow,85,4","system.data.oledb,85,1,75,1","system.datetime,84,2","system.datetime.now,82,2,84,2","system.datetime.now.year,90,1","system.drawing,81,1,82,1,85,1,86,1,87,1","system.eventargs,94,2","system.eventhandler,94,1","system.indexoutofrangeexception,94,2","system.int32,43,1,94,4","system.io,38,1,68,1,85,1,75,1,79,1,90,1,94,2","system.io.file.delete,14,1,95,6","system.io.stream,43,1","system.linq,68,1,63,1,75,1,86,1,87,1","system.net,38,1,68,1,67,2,90,2","system.net.mail,10,1,41,5,112,1","system.net.networkcredential,67,1","system.net.sockets,68,1","system.nullable,88,1","system.nullable&lt,88,13","system.object,94,1","system.runtime.serialization,75,1","system.security.cryptography,69,1","system.servicemodel.channels,75,1","system.string,43,2","system.text,68,1,81,1,85,1,63,1,75,1,79,1,86,1,87,1,94,3","system.text.encoding.ascii.getstring,67,1","system.text.regularexpressions,94,2","system.text.stringbuilder,43,2","system.threading,68,1,81,1,82,1,79,1,80,1,87,1,90,1","system.timespan,82,1,84,1","system.web,42,1,36,1","system.web&gt,33,2,34,1","system.web.services,36,1","system.web.ui,42,1","system.web.ui.page,42,1","system.web.ui.webcontrols,42,1","system.webserver&gt,33,2","system.windows.forms,81,1,82,1,85,1,79,1,86,1,87,1,94,2","system.windows.forms.button,82,1","system.windows.forms.datagridview,73,1","system.windows.forms.form,82,1","system.windows.forms.label,82,1","system.xml,75,1","system.xml.serialization,75,1","system32,57,1,74,1,103,1","systems,58,2","systemtime,99,1","szdesc,61,3","szerr,61,3","szfilter,44,4","szfunction,61,3","sznewlayout,55,4","szpath,61,3","szreturned,55,5","t2,69,1","t2.clear,69,1","t2.text,69,1","tsupport,94,1","tab,14,1,35,1,94,3,97,2","tabelle,21,1","tabindex,86,10","table,43,2,85,4,45,1,55,1,61,1,73,2,93,1,99,3","tactic,84,1,92,1","tag,61,1","take,33,1,34,1,46,1,51,1,57,1,58,2,79,1","taken,85,1,63,1,98,1","takes,66,1","taking,95,1","tale,8,1,27,1","tali,8,2","taoista,24,1","target,85,1,84,1,90,2","task,68,1,82,3,51,2,53,2,84,3,86,6,87,2","tasks,61,3,99,1","tat,59,1","tb,43,5,73,2,75,3","tb.asenumerable,75,1","tb.columns.add,43,2","tb.newrow,43,2","tb.readxml,43,1","tb.rows.add,43,2","tb.writexml,43,1","tbdestin,85,2","tbdestin.tables,85,10","tbl,93,2","tbl.columns,93,4","tbl.columns.refresh,93,1","tborigin,85,2","tborigin.tables,85,2","tchar,46,1,54,2,55,1,56,2,57,1,61,5,99,2","tchar.h&gt,54,2,55,1,61,1","tcp,12,1,22,1,40,1,68,5,100,1","tcplistener,68,5","tcplistener.acceptsocket,68,1","tcplistener.server,68,1","tcplistener.start,68,1","tcsdup,61,2","tdatarow,85,4","tdatarow&gt,85,2","teach,89,1","technique,12,1,59,1,87,1","technologies,61,1","tecnico,8,1,9,1","tecnologia,27,1","tel,4,1","telefonia,27,1","telefonica,2,1","telefono,4,1,29,1","telemarketing,29,1","telephone,66,1","teleprospecting,29,1","tells,47,1","temp,81,4,82,6,85,1,53,2,60,10,84,1,94,3","temp-&gt,53,1","temp.close,85,1","template,61,3","temporarily,58,1","temporary,58,3,60,8,99,1","temporary1,60,8","ten,68,1","terminalserver,100,1","terminate,48,1,61,1,94,1","terminated,34,1","terminateprocess,61,1","terminates,61,1","termini,8,2","terms,99,1","terrible,103,1","test,39,1,82,1,57,7,59,2,75,5,94,2,99,3","test.bin,45,1,71,1,75,2","test.cpp,57,2","test.exe,61,1","test.mdb,85,1","test.txt,85,1,94,2","test.xml,75,2,99,2","testclass,63,1","testfunc,94,4","testmessagefilter,87,4","testo,25,1","testw.bin,45,1","teta,46,3,88,1","text,11,1,42,1,35,2,45,1,54,4,55,1,56,5,57,1,61,13,69,1,84,1,86,5,94,6,99,2,102,1","textbody,61,1","textbox,69,1","textbox1.text,71,1","textbox2.text,71,1","textbox3.text,71,1","textinlabel,82,3","text-to-speech,7,1,21,1,22,1,23,1,24,1,25,2,26,1,27,1,28,1,105,1,106,1,104,1,107,1,108,2,109,1,110,1,111,1","textwriter,85,1","th,46,1","thanks,57,1","that’s,57,1","then,94,2","then,94,1","theory,10,1,69,1,112,1","therefore,81,2,64,1,96,1","thesender@dmm.it,61,1","thesender@dmmserver.it,41,1","thing,37,1,44,2,67,1,91,1,94,2","think,58,7,89,1","thinking,58,2","third,48,1,57,2,86,2,90,1,96,2","this-&gt,53,1,86,49","this._powerlevel,94,1","this.backcolor,84,2","this.btntaskauto.invokerequired,82,1","this.btntaskmanual.invokerequired,81,2","this.gpa,94,1","this.handle,87,1","this.invoke,81,2,82,3","this.labelauto.invokerequired,82,2","this.name,94,1","this.redirecthandle,87,2","this.refresh,86,1","this.x,63,1","this.y,63,1","thoroughly,69,1","those,31,1,58,6","though,58,1","thought,96,1","thoughts,99,1","thourogly,40,1","thre,44,1,61,1","thread,12,2,68,4,81,32,82,16,48,7,61,7,62,1,65,10,80,6,84,3,89,1,90,4,101,1","thread.sleep,81,2,82,2,79,1,84,2,87,1","thread0.html,65,4","threadenablebutton,82,2","threadenablebutton.isbackground,82,1","threadenablebutton.priority,82,1","threadenablebutton.start,82,1","threadlabelautocounter,82,2","threadlabelautocounter.isbackground,82,1","threadlabelautocounter.priority,82,1","threadlabelautocounter.start,82,1","threadpriority.highest,82,1","threadpriority.lowest,82,4","threadpriority.normal,84,1","threadproc,61,1","threads,68,1,81,2,48,3,61,1,65,1,84,1","threadstart,81,4,82,5,84,1","threadtest,81,2","threadtextinlabel,82,2","threadtextinlabel.isbackground,82,1","threadtextinlabel.priority,82,1","threadtextinlabel.start,82,1","threadupdatetimeinlabel,82,2","threadupdatetimeinlabel.priority,82,1","threadupdatetimeinlabel.start,82,1","three,41,1,57,7,61,1,72,1,77,1,86,4,94,4,96,2","threw,90,1","through,1,4,68,1,81,6,57,1,61,2","throw,88,1,90,2,94,5","thrown,74,1","throws,94,3","thus,58,5","ticket,81,4","tim,84,2","time,12,1,34,2,40,1,48,4,51,2,58,1,60,2,61,2,66,2,82,4,79,1,84,8,87,1,99,2","time.h&gt,99,1","time_tocheck,48,4","time_toget,48,6","time_toprint,48,5","timeend,84,3","timeleft.html,84,4","timeout,34,2","time-out,34,3","timeremaining,84,1","timeremaining.isbackground,84,1","timeremaining.priority,84,1","timeremaining.start,84,1","timespan,84,1","timestart,84,3","tip,16,1,100,4","tipycal,69,1","titolo,8,4,9,4,21,4,22,4,23,4,24,4,25,4,26,4,27,4,28,4","tm,99,2","tm.wday,99,2","tm.whour,99,2","tm.wminute,99,2","tm.wmonth,99,2","tm.wsecond,99,2","tm.wyear,99,2","tmain,46,1,54,2,55,1,56,1,57,1,61,1,99,1","tmstr,99,5","to_do,61,3","to3,94,1","today,94,2","together,58,1","token1,60,26","too,34,1,55,1","tool,10,1,21,2,22,2,53,5,71,1,86,1,112,1","tool1,53,4","top,66,1","topic,35,1","topics,10,1,11,1,12,1,13,1,14,1,15,1,16,1,17,1,18,1,19,1,20,1,112,1","tostring,66,3,71,2,82,1,73,2,75,1,90,1","total,34,1,68,1,94,2","totalmente,26,1","touched,92,1","toupper,94,2","towards,46,1","tr,38,1","track,39,1","tradizione,24,1","training,27,1","tramite,21,1","transaction,39,1","transactionform,85,1","transactions,39,1","transfer,34,2,43,1","transformed,37,1,69,1","transitional,38,1","trasferimento,8,1","trasferire,8,1","trasferite,8,1","trasferiti,8,1","trasmette,8,1","tratta,8,2,22,1,27,1","trattare,4,1,29,1","tread,68,1","treat,99,1","treated,45,2","tree,57,1","tri,44,12","trick,55,1,93,5","tricks,16,1,100,4","tries,82,1","trim,68,1","triphones,44,1","true,42,4,68,3,81,2,85,2,44,1,48,10,55,6,57,1,58,1,60,4,61,4,82,7,73,2,75,1,84,3,86,4,87,3,93,4,94,15,102,1","true&gt,33,1","true&lt,101,1","truly,57,1,103,1","truncate,59,1","truncated,58,2","truncates,94,2","trust,69,1","trying,64,1","tts,7,1,21,1,22,1,23,1,24,1,25,1,26,1,27,2,28,1,105,1,106,1,104,1,107,1,108,1,109,1,110,2,111,1","tu,93,1","turns,58,1","turnstile,81,5","tutorial,11,2,57,1","tutorials,1,1","tutte,4,1,29,1","tutti,29,1","tutto,9,1,27,1","twain,23,1","twice,89,1","two,10,1,12,1,36,1,37,1,41,1,43,1,81,2,85,5,51,1,58,2,61,1,72,1,75,2,90,1,92,2,94,10,112,1","twod,94,4","type,12,1,31,1,46,3,53,1,55,3,57,2,58,16,59,1,61,7,63,1,78,4,79,2,88,1,94,5,96,1,99,1,101,1","type.gettype,43,1","typedef,57,3","typename,94,1","typeof,43,2,75,3,88,3,94,2","types,12,2,51,1,58,2,78,1,88,12,94,6","typical,34,1,57,1","typically,37,1,61,1","typing,102,1","ubicazione,1,1,2,4,3,1,4,1,6,1,7,1,9,1,21,1,22,1,23,1,24,1,25,1,26,1,27,1,28,1,29,1,30,1,105,1,106,1,104,1,107,1,108,1,109,1,110,1,111,1","udl,35,1","udp,22,1","uffici,8,1","uint,94,2","uinteger,94,2","uitotal,94,2","ulong,94,4","ultotal,94,2","umane,27,1","un,2,1,8,6,9,2,21,3,22,1,24,1,27,2,28,1,29,1","una,2,2,3,1,4,5,22,2,26,1,27,1,28,1","unary,58,2","unblocked,81,1","unchanged,85,1,58,1","uncheck,35,1","uncomment,99,3","unconfortable,101,1","uncorrect,102,1","under,10,1,91,1,100,1,112,1","underlying,68,1,81,1,69,1,70,1","understand,48,1,92,1","understanding,36,4","unfortunately,60,1","unicamente,8,1","unicode,11,2,56,7,57,1,60,5","unique,51,2,69,1,98,1","university,94,4","unix,55,1","unless,58,1,62,1","unlo,54,2","unload,42,1","unlock,54,3","unlocking,43,1","unmanaged,11,1,47,5,48,1,52,7,53,1,57,2,61,7,92,6,94,2","unmapviewoffile,59,1","unpack,91,1","unresolved,57,1","unset,103,1","unsigned,49,2,55,1,58,2,59,6,99,1","unstructured,94,1","until,68,1,81,2,61,1,82,1,84,1,88,1,90,1,94,3","untyped,12,1,73,6","unused,55,1","update,12,1,13,1,85,1,45,1,55,1,61,1,82,5,89,1","updated,61,1,89,2","updateelapsedtime,82,3","updater,84,1","updateremainingelapsedtime,84,1","updates,84,1,89,1","updatesvcdesc,61,3","updating,12,2,84,5","upgrade,89,1","upload,34,6,67,6,90,2","uploaded,34,3,67,2,90,1","uploadfile,67,1","uploading,10,1,34,2,112,1","uploads,34,4","upon,81,1,47,1,99,1","uppermost,58,1","urgent,61,1","uri,67,1,90,6","uristring,67,3","url,36,1,67,1,90,1","urllinepragmas,33,1","usage,10,1,11,1,12,2,15,1,39,2,68,4,46,3,54,2,61,1,62,1,69,5,71,4,92,1,99,1,112,1","usare,25,1","usb,54,1","use,10,1,12,1,14,1,42,1,35,1,36,1,37,1,38,1,39,2,43,1,81,1,44,1,46,1,57,2,58,3,59,1,61,5,63,1,69,1,83,1,86,1,87,1,88,1,92,1,93,1,94,5,95,6,98,2,99,2,101,1,103,1,112,1","used,33,1,34,1,43,2,68,1,81,1,51,1,55,2,57,3,58,3,61,1,62,1,63,1,64,1,69,1,86,1,87,1,92,1,93,1,94,3,96,1,97,1,98,1,99,1,100,1,101,1","useful,11,2,15,1,41,1,43,1,81,1,58,4,62,1,70,1,73,2,86,1,87,1","useless,58,2","user,10,1,12,1,31,1,33,1,34,1,44,1,51,3,66,1,74,9,75,1,84,1,87,1,94,2,112,1","userchoice,103,1","username,67,1,74,2,90,2","users,35,1,43,1,69,1","uses,39,1,55,2,61,1,67,1,84,1,90,1","useshellexecute,74,1","usetheunderscore,94,1","usevisualstylebackcolor,86,4","ushort,94,4","using,10,2,11,4,12,5,13,1,42,5,35,1,38,1,39,1,41,6,43,5,68,8,81,11,85,22,44,6,45,3,46,1,47,1,49,1,53,2,54,1,55,1,56,5,57,1,58,4,59,2,61,8,63,4,65,1,66,1,67,8,69,1,82,9,73,1,75,18,79,14,80,2,84,2,86,15,87,10,88,1,90,8,94,9,101,2,112,2","uso,8,1","ustotal,94,2","usually,40,1,58,2","utenti,8,1","utf,68,1","utf.getstring,68,1","utf-8,66,1","utf8encoding,68,2","utilities,36,1","utility,22,1,48,1","utilized,58,1","utilizza,8,1","utilizzate,8,1","utilizzatori,3,1","utilizzo,4,2,29,2","uuidof,61,3,99,3","v2.0,94,1","v4,55,2","val,58,8,94,1","valid,31,1,57,2,58,1,65,1,102,2","validate,102,1","validated,102,1","validating,31,1","validation,69,1","validregexp,102,2","value,42,2,33,3,34,1,54,4,55,1,57,3,58,12,60,2,61,20,66,3,71,2,74,1,75,2,76,3,86,1,88,4,90,4,94,10,97,3,100,2","value.tostring,76,1","values,10,1,12,2,42,1,33,2,34,1,85,2,47,2,48,2,55,1,66,2,69,1,83,10,76,1,88,1,94,1,96,1,97,1,99,1,112,1","vanta,7,1","vantaggi,8,1","var,72,7,73,3,75,2,94,1","variable,51,1,57,1,58,2,65,1,75,1,86,1,94,3,96,1,98,1","variables,43,1,61,1","variant_t,61,10,99,8","variant_true,61,1","variare,26,1","variation,81,1","variety,58,1","various,1,1,58,1,95,1,99,1","vars,60,4,61,1","vasta,26,1","vb,36,2,93,1,96,4","vb.net,14,1,42,3,77,1,94,27,96,2","vb6,96,1","vbasicblog.html,14,4","vbback,94,1","vbcr,94,1,97,1","vbcrlf,94,1,97,1","vbformfeed,94,1,97,1","vblf,94,1,97,1","vbnewline,94,1,97,1","vbnullchar,97,1","vbnullstring,94,1,97,1","vbs,93,1","vbscript,14,2,96,5,97,5","vbscriptarray.html,96,4","vbscriptconstants.html,97,4","vbtab,94,2,97,1","vbverticaltab,94,1,97,1","ve,58,1","veloce,28,1","ventennale,2,1","ver,91,1","veramente,9,1","verifica,9,1","verification,19,1,102,4","verify,35,1,41,1","versa,58,2","versatile,21,1,23,1","versatilit,28,1","version,39,1,56,2,59,1,60,1,66,1,79,1,89,3,101,1","versions,94,1","vertical,97,1","vetrina,2,1,7,1,21,1,22,1,23,1,24,1,25,1,26,1,27,1,28,4,105,1,106,1,104,1,107,1,108,1,109,1,110,1,111,2","vettoriale,27,1","vi,2,1,3,4,4,2,8,6,21,1,28,1","via,4,1,8,1,12,1,26,1,29,1,66,1,86,1,93,5","vice,58,2","vice-versa,58,1","viene,8,1","view,31,2,35,1,103,1","view-&gt,51,1","viewer,61,1","viewstate,43,1","viewstate.add,43,1","violating,58,1","virtual,12,1,16,1,39,1,41,6,62,2,63,7,101,5","virtual_machines&gt,101,1","virtualc.html,63,4","virus,8,1","vista,7,1,17,1,21,1,22,2,23,1,24,1,25,1,26,2,27,1,28,1,105,2,106,1,54,1,103,5,104,1,107,1,108,1,109,1,110,1,111,1","visual,1,1,10,1,11,1,14,5,22,1,26,1,32,2,36,2,85,2,51,3,52,5,53,1,57,1,63,1,78,1,79,1,92,3,93,2,94,1,95,1,96,2,97,5,112,1","visuale,21,1","visualization,99,1","visualizzare,21,1","visualizzarne,8,1","vmware,101,1","vocale,27,2","voce,27,2","voci,25,2,27,2","vogliono,24,1","voi,8,1","voice,44,4","voicetype,44,1","void,42,14,43,1,68,2,81,8,85,1,46,2,48,12,50,1,53,5,57,3,60,2,61,16,62,2,63,1,65,1,72,1,82,11,75,1,76,1,79,1,84,2,86,14,87,2,90,3,94,6","voip,27,1","volete,30,1,105,1,106,1,104,1,107,1,108,1,109,1,110,1,111,1","volo,22,1","volta,21,1","volume,11,1,54,7","volumes,54,7","vostra,2,2,3,1,8,1,9,1","vostre,4,1,28,1","vostri,8,1,21,1,28,1","vostro,4,2,8,1,9,2","vpc,101,6","vpconlaptops.html,101,4","vs,32,1,66,1","vs2008,57,1","w3c,38,1","wa_active,87,1","wa_clickactive,87,1","wa_inactive,87,1","wait,81,2,48,1,84,1,90,4","waiters,81,1","waitforsingleobject,61,3","waiting,81,2,61,1","waitobject,90,2","waitobject.waitone,90,1","waitone,81,6","waits,81,1,61,1","warning,85,2,61,1,86,1","warnings,58,1","way,11,1,12,1,42,1,36,2,38,1,85,5,46,1,47,1,54,3,56,5,57,1,58,2,61,1,62,1,65,1,66,1,80,1,84,1,86,1,92,1,93,1","wcf,12,1,75,2","wcfserialization.html,75,4","wchar_t,60,19","wcscpy_s,60,4","wcslen,57,2,60,8","wcstok_s,60,4","we’ll,57,1,92,1","weakness,73,1","web,4,1,7,1,8,2,10,1,21,1,22,1,23,4,24,1,42,4,25,1,26,2,27,1,28,2,31,8,32,1,34,6,36,10,38,6,39,1,40,4,43,1,105,1,106,2,63,1,67,1,104,1,107,1,108,1,109,1,110,1,111,1,112,1","web.config,10,2,33,7,34,4,35,1,112,2","webclient,12,1,67,12","webclientcsharp.html,67,4","webconfig0.html,34,4","webform,43,3","webforms,10,1,43,6,112,1","webrequest.create,90,2","webrequestmethods.ftp.deletefile,90,1","webrequestmethods.ftp.makedirectory,90,1","webrequestmethods.ftp.uploadfile,90,1","webs,33,1","webservices,36,1","welcome,1,1,10,1,11,1,12,1,13,1,14,1,15,1,16,1,17,1,18,1,19,1,20,1,112,1","were,54,2,59,1,78,1","weren,87,1","wether,42,1","wfopen,56,1","wfopen_s,56,1","what’s,92,1","whatever,66,1","whatsoever,87,1","whenever,61,1","whenyouhaveareally,94,1","wherearewe.jpg,67,1","whereas,61,1","whether,31,2,61,1,66,1","while,12,1,31,1,68,2,48,3,54,2,58,2,60,4,61,5,82,1,84,5,90,1,94,16,99,1","white,50,2","whith,14,1,95,5","who,51,1","whole,54,2","whose,45,1,62,1,86,1","wia,23,1","wich,81,1,72,1,96,1","widely,92,1","wider,58,1","wildcards,14,1,95,5","win32,11,1,48,1,57,1,61,7,99,1","winapi,61,6","windos,7,1,21,1,22,2,23,1,24,1,25,1,26,1,27,1,28,1,105,2,106,1,104,1,107,1,108,1,109,1,110,1,111,1","window,81,1,51,2,84,1","window.open,43,1","windows,1,2,10,1,11,8,12,5,17,6,22,1,26,2,33,1,39,7,81,2,48,4,50,2,51,9,52,5,54,2,55,2,57,1,61,3,66,1,69,1,82,7,75,4,76,4,80,5,86,18,87,2,92,3,100,2,103,7,112,1","windows.forms,11,1,50,5","windows.h&gt,48,1,54,2,55,1,56,1,57,1,61,1","windowsosblog.html,17,4","winformmultithreaded,82,1","winformmultithreaded.html,82,4","winsta0,61,1","winstations,100,1","winuser.h,87,1","wise,7,1,21,1,22,1,23,1,24,2,25,1,26,1,27,1,28,1,105,1,106,1,104,1,107,2,108,1,109,1,110,1,111,1","wisely,87,1","wiser,89,1","wish,73,2,75,1","wished,69,1","wishing,100,1","withevents,94,2","without,10,1,37,1,58,1,82,1,78,1,84,1,87,1,96,1,112,1","witness,86,1","wm_activate,87,1","wm_close,87,1","wm_ctlcolorbtn,87,1","wm_ctlcolordlg,87,1","wm_ctlcoloredit,87,1","wm_ctlcolorlistbox,87,1","wm_ctlcolormsgbox,87,1","wm_ctlcolorscrollbar,87,1","wm_ctlcolorstatic,87,1","wm_destroy,87,1","wm_enable,87,1","wm_entersizemove,87,1","wm_gettext,87,1","wm_gettextlength,87,1","wm_killfocus,87,1","wm_lbuttondblclk,87,1","wm_lbuttondown,87,2","wm_lbuttonup,87,2","wm_mbuttondblclk,87,1","wm_mbuttondown,87,1","wm_mbuttonup,87,1","wm_mouseactivate,87,1","wm_mousefirst,87,1","wm_mouselast,87,1","wm_mousemove,87,1","wm_move,87,1","wm_nchittest,87,1","wm_ncpaint,87,1","wm_paint,87,1","wm_rbuttondblclk,87,1","wm_rbuttondown,87,1","wm_rbuttonup,87,1","wm_setfocus,87,1","wm_setredraw,87,1","wm_settext,87,1","wm_size,87,1","wm_sizing,87,1","won,42,1,94,1","word,62,1,94,5,103,1","worde,73,1","worde.pronounced,73,1","worde.written,73,1","words,81,1,73,6,75,3","words.accdb,73,2,75,1","work,11,1,12,1,85,2,48,3,52,5,61,4,66,1,70,1,84,1,93,1,99,1","worked,45,1","worker,68,5,81,3,53,2,65,1,82,2","worker.isbackground,82,1","worker.priority,82,1","worker.start,81,2,82,1","workerfunctionautoreset,81,2","workerfunctionmanualreset,81,2","workerlabelautocounter,82,2","workernamespace,53,1","workers,68,1","workerstarttask,82,2","working,1,1,36,1,51,1,52,1,58,1,74,1,79,1","workingdirectory,74,1","works,58,1,93,1","wormwoman,94,4","worse,58,1","worth,58,1,95,1","would,46,1,58,1,69,1,87,1","wrapper,12,1,88,1","wristwatch,94,1","wristwatch,94,1","write,11,1,33,1,36,4,44,4,45,4,46,2,50,1,54,1,56,5,58,3,59,2,61,1,62,1,66,1,76,1,94,4,96,4","writefile,54,2,59,1","writer,58,2,75,2,94,2","writer.close,75,1,94,2","writer.writeline,94,2","writing,42,1,44,2,45,6,54,1,58,1,61,1,71,1,90,1","written,58,1,59,1,73,4,75,5,78,1,87,1,92,1","wrong,94,2","wsdl,36,4","wsdl.exe,10,1,36,2,112,1","wsdldisco.html,36,4","ww,84,1","www.dmm888.com,8,1,33,1,36,1,67,1,75,4","www.emof.it,8,1","www.microsoft.com,79,1","www.w3.org,38,1","wxall,91,1","wxwidgets,91,3","x.dat,94,2","x.dat,94,1","x2,69,1","x20,99,1","x20%02d,99,1","x20%02d.%2d.%2d,99,1","xenix,55,2","xhtml,38,1","xhtml1,38,1","xhtml1-transitional.dtd&gt,38,1","xml,58,1,66,1,94,3,99,2","xmldictionaryreader,75,1","xmldictionaryreader.createbinaryreader,75,1","xmldictionaryreaderquotas.max,75,1","xmldictionarywriter,75,1","xmldictionarywriter.createbinarywriter,75,1","xmlwritemode.writeschema,43,1","xor,94,2","xp,7,1,17,1,21,1,22,2,23,1,24,1,25,1,26,2,27,1,28,1,105,2,106,1,51,2,103,5,104,1,107,1,108,1,109,1,110,1,111,1","xsave,99,1","xxxxxxxxxxxxxxxxxxxxxxxxx,66,1","year,99,1","years,94,4","yes,61,1","yet,57,1","yyyy,94,2","zero,14,1,45,1,51,1,72,1,93,11,94,1,97,2","zero-extends,58,1","zerolength.html,93,4","zeromemory,55,2,61,2","zeros,59,1"); arrFiles=new Array();arrFiles[0]=new Array(1,"","","DMM IT Genoa","","","H O M E UBICAZIONE | SUPPORT -- REGISTER | DOWNLOAD -- ACTIVITIES Assistenza Software DMM IT Need some good piece of code? try here! INFO PRIVACY -- BEST PRACTICES FOR CODING VARIOUS TUTORIALS Drop a note TO DMM IT INFO FOR FREE THE PROGRAMMER \'S SITE Welcome to DMM! English reference guide Dmm is online with a programmer \'s guide area completely dedicated to education and software development guide. Please surf the area to see if you can find answers to your problems. Or insert a key serch in the field. Learn ENGLISH MORE SLOG THROUGH.: If you slog through something difficult, you continue moving through it or working at it with a lot of effort. In order to reach the house in the forest we had to slog through 2 meters of snow. *** DAILY DMM PIECE OF CODE Manutenzione PC Desktop Price:  0,00 -- Developer \'s reference ASP.NET C# .NET Windows C++ Linux C++ Visual Basic.NET COM/DCOM Networking Windows OS Mobile Javascript Music ",12);arrFiles[1]=new Array(2,"presenta.html","20 Jul 2008","DMM INFORMATICA: ubicazione","","","GENOVA Dmm Informatica offre servizi informatici di grande qualit&agrave; e Vi supporta nella creazione delle migliori soluzioni software e hardware per la Vostra azienda. Se desiderate una consulenza telefonica gratuita chiamateci allo 0108398007 e un nostro incaricato sar&agrave; a Vostra disposizione per ascoltarVi e consigliarVi al meglio. La seriet&agrave; di DMM &egrave; il risultato di esperienza ventennale e di una continua politica aziendale di rinnovamento e ricerca per garantire prestazioni e affidabilit&agrave; delle nostre soluzioni. DMM &egrave; competente e affidabile DMM INFORMATICA A GENOVA The best IT solutions for your organization RITORNA ALLA VETRINA ",3);arrFiles[2]=new Array(3,"signin.asp","","DMM IT Genoa","","","H O M E UBICAZIONE | SUPPORT -- REGISTER | DOWNLOAD -- Registrazione &#183; La Prima cortesia che vi chiediamo e di registrarVi. Basta selezionare una delle due opzioni sotto. Vi siete gi&agrave; registrati . Se Vi siete Gi registrati prima a DMM IT Genoa , digitate la vostra email e la password per accedere. E-Mail: Password: Se siete nuovi utilizzatori del nostro servizio. Se non Vi siete registrati prima basta premere qu. ",4);arrFiles[3]=new Array(4,"Supporto.asp","","Chiedete una consulenza gratuita ai nostri esperti","","","H O M E UBICAZIONE | SUPPORT -- REGISTER | DOWNLOAD -- Benvenuti al centro di supporto della ditta DMM IT Genoa. Vi preghiamo di compilare il modulo sottostante in modo che possiamo conoscere le Vostre esigenze e soddisfare al meglio le richieste. Il responsabile del supporto Vi dar&agrave; una risposta nell \'arco delle 24 ore. Inserendo il vostro indirizzo e-mail, date alla ditta DMM IT Genoa , il permesso di inviarvi messaggi e-mail. LEGGETE L \'INFORMATIVA SULLA PRIVACY Grazie. Prego inserite i dati richiesti e il Vostro messaggio. Nome* Cognome Indirizzo C.A.P Comune Citt&agrave; Telefono e-mail* Sito web HOME Ai sensi della Legge 675/96, autorizzo la ditta DMM IT Genoa a trattare i dati da me sopra riportati per le attivit&agrave; di comunicazione, diffusione ed utilizzo interne alla azienda (ad es.: rapporti, analisi, statistiche, ecc.) cos&igrave; come per la comunicazione, diffusione e realizzazione di tutte le sue attivit&agrave; di promozione dei propri prodotti (ad es.: aggiornamenti software). In ogni momento, a norma dell 222articolo 13 Legge 675/96, mi sar&agrave; possibile avere accesso ai miei dati, chiederne la modifica o la cancellazione oppure oppormi al loro utilizzo scrivendo a: Ditta DMM IT Genoa Via Rino Mandoli 101 Tel 0108398007 Genova . ",11);arrFiles[4]=new Array(5,"Download.html","17 Jan 2008","Pagina di Download ditta E.M.O.F","","","Pagina in costruzione HOME ",1);arrFiles[5]=new Array(6,"category.asp?catcode=13","","DMM IT Genoa ","","","H O M E UBICAZIONE | SUPPORT -- REGISTER | DOWNLOAD -- Assistenza Manutenzione PC Desktop Assistenza e recupero dati. HOME Naviga Sulle altre categorie Assistenza Software ",3);arrFiles[6]=new Array(7,"category.asp?catcode=12","","DMM IT Genoa ","","","H O M E UBICAZIONE | SUPPORT -- REGISTER | DOWNLOAD -- Software Access 2008 Administrator PRO Firewall Manager for Windos Vista & XP Image MANAGER for Web Designers King WISE Nuovo Text-To-Speech by DMM RAS .Net Manager DLL TTS Premium ENGLISH Vetrina Su Internet Il nostro Software vanta di affidabilit e performance, frutto di sforzi compiuti in 20 anni di ricerca e dedizione. HOME Naviga Sulle altre categorie Assistenza Software ",5);arrFiles[7]=new Array(8,"privacy.html","30 Aug 2008","Documento senza titolo","","","DMM Informatica- Informativa sulla Privacy Online Accedendo al sito web www.dmm888.com gestito dalla Ditta DMM Informatica,e navigando all \'interno di esso, accettate i termini dell \'Informativa sulla Privacy Online DMM, cos&igrave; come viene esposta nelle righe seguenti. Se non accettate tali termini, siete pregati di non accedere al sito e di non visualizzarne i contenuti. Raccolta di dati personali. Navigando su www.emof.it se svolgete attivit&agrave; quali ordinare prodotti, o scaricare software, DMM potrebbe chiedervi di fornire informazioni personali attraverso la compilazione e l \'invio di un modulo elettronico. A vostra discrezione di accettare o meno tale richiesta. Se decidete di aderire, DMM vi chieder&agrave; di fornire informazioni personali, quali nome, indirizzo, indirizzo e-mail e altri dati che vi identificano. DMM raccoglie tali informazioni per registrarle e consentirvi di prender parte alle attivit&agrave; da voi scelte. Se ordinate un prodotto, per esempio, le informazioni sono utilizzate per registrare la licenza ed il diritto, qualora sia previsto, di avvalervi del supporto tecnico, degli aggiornamenti a prezzo scontato o di altri vantaggi che possono essere offerti agli utenti registrati. DMM si asterr&agrave; scrupolosamente dal segnalare i Vostri Dati ad altre societ&agrave; o organizzazioni che dispongono di prodotti o servizi che DMM non tratta. Inviando a DMM notizie personali in relazione a particolari attivit&agrave;, quali l \'ordine di un prodotto, siete consapevoli e accettate che DMM possa avere la necessit&agrave; di trasferire, raccogliere ed elaborare le informazioni che vi riguardano allo scopo di completare l \'attivit&agrave; e aggiornare i dati relativi. Le informazioni che vi riguardano non saranno trasferite fuori dagli uffici della DMM Uso dei cookie . Un cookie consiste in un ridotto insieme di dati trasferiti al vostro browser da un server Web e pu&ograve; essere letto unicamente dal server che ha effettuato il trasferimento. Funge da carta d \'identit&agrave;, registrando le password, gli acquisti e le preferenze. Non si tratta di codice eseguibile e non trasmette virus. DMM utilizza esclusivamente cookies di sessione. Aggiornamento delle informazioni personali. Avete il diritto di accedere a e di modificare le informazioni personali e le scelte che riguardano la privacy. Questo pu&ograve; essere fatto scrivendo a DMM al seguente indirizzo: DMM Informatica Via Rino Mandoli 101 N. 16139 GENOVA ITALY Vi preghiamo di indicare, quando vi mettete in contatto con noi, nome, indirizzo e/o indirizzo e-mail. Ritorna alla registrazione Ritorno Alla Pagina di Supporto Ritorno Alla Home page ",4);arrFiles[8]=new Array(9,"product.asp?productid=52","","Documento senza titolo","","","H O M E UBICAZIONE | SUPPORT -- REGISTER | DOWNLOAD -- Assistenza Manutenzione PC Desktop Manutenzione PC Desktop Prezzo: € 0,00 -- Se desiderate avere il Vostro Pc Sempre aggiornato e pronto a lavorare con la massima efficienza, chiedete l \'intervento di un nostro tecnico per la manutenzione e la verifica della vostra macchina. Riceverete anche preziosi consigli e avrete la sicurezza dell \' \'integrità del Vostro isostituibile strumento di lavoro. Il tutto ad un prezzo veramente insuperabile. -- HOME Surf other categories Assistenza Software ",5);arrFiles[9]=new Array(10,"blog/aspnet.html","1 Jul 2009","Index of ASP.NET DMM Reference","","","Home Welcome to ASP.NET DMM Reference Topics: Difference between Authentication and Authorization Absolute position of ASP.NET controls on Visual Studio 2008 How to extract key values from appsettings section of a web.config file Important consideration on web.config when uploading large files Building an access connection string to use with ADO.NET objects Web Services Base Theory and Wsdl.exe, Disco.exe usage Service-oriented architecture (SOA) definition Managing form authentication for anonymous user using in built login controls ASP.NET IIS Registration Tool (Aspnet_regiis.exe) Correct syntax for importing namespaces in Asp.Net pages without code-behind file How to configure Smtp in Windows Server 2008 Enterprise Be aware that receiving smtp mail may fail if under Norton Antivirus or Avast or other kind of AV protection Two different examples of sending mail by Smtp by means of .Net 3.0 System.Net.Mail class AutoEventWireup meaning in Page directive Passing datatable among webforms using application locking Home ",9);arrFiles[10]=new Array(11,"blog/cppwindows0.html","7 Jan 2010","Index of Windows C++ DMM Reference","","","Home Welcome to WINDOWS C++ DMM Reference Topics: How to manage file input/output with C++ fopen fwrite fread How to manage input/output operation with MFC CFile object Casting class in a primitive form using pointers Notes about copying pointers using memcpy Multithreading Specific Critical Section usage How to perform binary reading of a file In Managed C++.Net Framework 2.0/3.5 How to estabilish file associations for a C++.Net Windows Forms Application How to change the color of a selected item in a Windows.Forms Listbox or other scrollable controls A skeleton Solution in Visual C++.net windows Form able to work with unmanaged code A bunch of classes built in order to show interesting features of multiple Ineritance Using CreateFile Windows function to open a phisical volume and perform backup operations A useful code snippet to create 4 partitions of a given size on a hardisk GDI+ tutorial and code sample for drawing with GDI An useful tutorial on LoadLibrary DLL creation and Def files How to write lines of unicode text in a file using fwprintf in Microsoft deprecated and secure way Casting in C/C++, static_cast, reinterpret_cast and notes Split a string given a specific separator: ASCII and Unicode function implementation. Insert a chunk of bytes into a file in place of a previous chunk of different size at a start address A skeleton of a win32 Service that sends email by means of a smtp server Home ",9);arrFiles[11]=new Array(12,"blog/csharpblog.html","11 Jan 2010","C# Reference by DMM","","","Home Welcome to the DMM C# reference. Topics: Virtual Methods Abstract Classes and methods Sealed Classes and methods Passing parameters to a Thread Retrieving parameters from application settings Using WebClient Class to download a file Tcp Sockets usage MD5 Sum basics and computing Number of rows in datagrid Memorystream usage sample Basic LINQ sample Linq to Untyped Dataset How to start a process with user credentials WCF Serialization sample How to Rescue the content of a cell in a Windows Forms DataGridView How to cript a file using Criptoserviceprovider How to use Extension technique in C# 3.0 and above to add methods to an existing type How to create an Access 2003 / 2007 database file using ADOX and DAO Difference between AutoResetEvent and ManualResetEvent in Multithreading How to manage Cross Thread problems when updating Windows Forms Controls How to Update windows Forms Controls in a Multithreaded environment How to calculate the time left for an asyncronous call to complete while updating form appearance How to manage Null values when comparing datacolumn values A proficient way to compare two identical datatables using DatarowComparer class How to fire methods that belong to controls in a Windows Form via code Filtering Messages in a Windows Form to freeze it or to control specific events Nullable types and a wrapper to handle the inability of Convert.ChangeType to work with nullable types Main Ftp operation using FtpWebRequest Home ",11);arrFiles[12]=new Array(13,"blog/linuxblog.html","24 Jan 2008","Index of LINUX C++ DMM Reference","","","Home Welcome to LINUX C++ DMM Reference Topics: Try opensuse rather than partial update How to compile an application using opensuse as base system Home ",7);arrFiles[13]=new Array(14,"blog/vbasicblog.html","15 Aug 2008","Index of Visual Basic.NET DMM Reference","","","Home Welcome to Visual Basic.NET DMM Reference Topics: An exaustive sample for Platform Invoke Important differencies between VB.NET and C# language How to allow Zero Length field in an Access Database How to use System.IO.File.Delete whith wildcards A brief reminder on how to declare a multidimensional dynamic array in VBscript Vbscript constants string like line feed carriage return and tab Home ",7);arrFiles[14]=new Array(15,"blog/comdcomblog.html","22 Mar 2009","Index of COM/DCOM DMM Reference","","","Home Welcome to COM/DCOM DMM Reference Topics: CLSID GUID and its representation in C++ The ADO Library and an useful example of usage in C++ Home ",7);arrFiles[15]=new Array(16,"blog/networkingblog.html","22 Feb 2009","Index of NETWORKING DMM Reference","","","Home Welcome to NETWORKING DMM Reference Topics: Remote Desktop connection tip and tricks Virtual PC 2007 Sp1 on some laptops \' mouse issue Home ",7);arrFiles[16]=new Array(17,"blog/windowsosblog.html","5 Aug 2008","Index of Windows OS DMM Reference","","","Home Welcome to Windows OS DMM Reference Topics: Restore file association for a given extension in Windows Vista and XP Home ",7);arrFiles[17]=new Array(18,"blog/mobile.html","4 Aug 2008","Index of Mobile DMM Reference","","","Home Welcome to Mobile DMM Reference Topics: Home ",7);arrFiles[18]=new Array(19,"blog/javascript.html","22 Aug 2008","Index of Javascript DMM Reference","","","Home Welcome to Javascript DMM Reference Topics: Email verification in javascript Home ",7);arrFiles[19]=new Array(20,"blog/music.html","12 Mar 2010","Index of Music DMM Reference","","","Home Welcome to Music DMM Reference Topics: Download MIDI from Johann Sebastian Bach \'s Flute BWV 1020 Allegro 1 Download MIDI from Johann Sebastian Bach \'s Flute BWV 1020 Adagio Download MIDI from Johann Sebastian Bach \'s Flute BWV 1020 Allegro 2 Home ",7);arrFiles[20]=new Array(21,"product.asp?productid=45","","Documento senza titolo","","","H O M E UBICAZIONE | SUPPORT -- REGISTER | DOWNLOAD -- Software Access 2008 Administrator PRO Firewall Manager for Windos Vista & XP Image MANAGER for Web Designers King WISE Nuovo Text-To-Speech by DMM RAS .Net Manager DLL TTS Premium ENGLISH Vetrina Su Internet Access 2008 Administrator PRO Prezzo: € 0,00 -- Per la prima volta potrete disporre di un tool potentissimo che Vi permetterà di leggere e modificare i database di Access senza dover acquistare costose licenze. Potrete aprire,compattare,modificare la password dei vostri file mdb e accdb, come pure creare tabelle, query e visualizzare il contenuto degli oggetti di database. Inoltre potrete gestire i campi immagine tramite inserimento e modifica degli stessi in un ambiente visuale ed agevole. Potrete disporre di Un tool semplice e versatile. -- HOME Surf other categories Assistenza Software ",6);arrFiles[21]=new Array(22,"product.asp?productid=51","","Documento senza titolo","","","H O M E UBICAZIONE | SUPPORT -- REGISTER | DOWNLOAD -- Software Access 2008 Administrator PRO Firewall Manager for Windos Vista & XP Image MANAGER for Web Designers King WISE Nuovo Text-To-Speech by DMM RAS .Net Manager DLL TTS Premium ENGLISH Vetrina Su Internet Firewall Manager for Windos Vista & XP Prezzo: € 0,00 -- Si tratta di una utility completa per la gestione del Firewall di Microsoft Windows. Questo tool permette l \' \'agevole manipolazione delle porte e una gestione intelligente delle comunicazioni di rete. Ideale per gli sviluppatori, è disponibile a richiesta anche come componente aggiuntivo per Visual Studio 2005/2008 sotto forma di libreria a collegamento dinamico. In aggiunta questo tool permette di aprire o chiudere al volo un intervallo di porte contigue TCP o UDP o aggiungere eccezioni di applicazioni. -- HOME Surf other categories Assistenza Software ",6);arrFiles[22]=new Array(23,"product.asp?productid=46","","Documento senza titolo","","","H O M E UBICAZIONE | SUPPORT -- REGISTER | DOWNLOAD -- Software Access 2008 Administrator PRO Firewall Manager for Windos Vista & XP Image MANAGER for Web Designers King WISE Nuovo Text-To-Speech by DMM RAS .Net Manager DLL TTS Premium ENGLISH Vetrina Su Internet Image MANAGER for Web Designers Prezzo: € 0,00 -- Questo prodotto è studiato appositamente per gli sviluppatori di siti web i quali desiderano interagire con le immagini del proprio sito in costruzione nel modo più versatile possibile. Completamente compatibile con scanner Twain e WIA permette di crere immagini ritagliate e acquisizioni da schermo per poi salvarle in formato ottimizzato per il web. -- HOME Surf other categories Assistenza Software ",6);arrFiles[23]=new Array(24,"product.asp?productid=47","","Documento senza titolo","","","H O M E UBICAZIONE | SUPPORT -- REGISTER | DOWNLOAD -- Software Access 2008 Administrator PRO Firewall Manager for Windos Vista & XP Image MANAGER for Web Designers King WISE Nuovo Text-To-Speech by DMM RAS .Net Manager DLL TTS Premium ENGLISH Vetrina Su Internet King WISE Prezzo: € 0,00 -- Questo prodotto è pensato per gli studiosi e gli hobbisti che vogliono approfondire la loro conoscenza nel mondo della filosofia taoista. Gli algoritmi di probabilità per la determinazione degli esagrammi sono riprodotti fedelmente dalla antica tradizione del lancio delle monete e dagli steli del millefoglie. Con questo applicativo, dotato anche della possibilità di stampe e archiviazione per soggetto potrete esplorare le profondità del mutamento ed investigare sulle probabilità di accadimento di un evento. -- HOME Surf other categories Assistenza Software ",6);arrFiles[24]=new Array(25,"product.asp?productid=49","","Documento senza titolo","","","H O M E UBICAZIONE | SUPPORT -- REGISTER | DOWNLOAD -- Software Access 2008 Administrator PRO Firewall Manager for Windos Vista & XP Image MANAGER for Web Designers King WISE Nuovo Text-To-Speech by DMM RAS .Net Manager DLL TTS Premium ENGLISH Vetrina Su Internet Nuovo Text-To-Speech by DMM Prezzo: € 0,00 -- Ottimo interprete delle Voci Microsoft per leggere in formato audio qualunque documento. Molto semplice da usare, permette di creare esportazioni di documenti in formato audio da formato testo. Inoltre è possibile implementari dizionari personalizzati di pronuncia e migliorare la prosodia delle voci esistenti. -- HOME Surf other categories Assistenza Software ",6);arrFiles[25]=new Array(26,"product.asp?productid=53","","Documento senza titolo","","","H O M E UBICAZIONE | SUPPORT -- REGISTER | DOWNLOAD -- Software Access 2008 Administrator PRO Firewall Manager for Windos Vista & XP Image MANAGER for Web Designers King WISE Nuovo Text-To-Speech by DMM RAS .Net Manager DLL TTS Premium ENGLISH Vetrina Su Internet RAS .Net Manager DLL Prezzo: € 0,00 -- Questo componente riutilizzabile è totalmente dedicato alla gestione delle connessioni remote in Windows Serie XP, Server 2003 e Vista. E \' possibile invocare funzioni per creare nuove connessioni RAS Via codice, come pure variare i parametri di connessioni esistenti. Il prodotto scritto in C# è completamente compatibile con Visual studio 2005/2008 e offre agli sviluppatori una vasta gamma di funzioni per la gestione precisa del RAS di Windows. Ideale per l \'ambiente SOA e per gli ambienti di lavoro Web Services oriented. -- HOME Surf other categories Assistenza Software ",6);arrFiles[26]=new Array(27,"product.asp?productid=50","","Documento senza titolo","","","H O M E UBICAZIONE | SUPPORT -- REGISTER | DOWNLOAD -- Software Access 2008 Administrator PRO Firewall Manager for Windos Vista & XP Image MANAGER for Web Designers King WISE Nuovo Text-To-Speech by DMM RAS .Net Manager DLL TTS Premium ENGLISH Vetrina Su Internet TTS Premium ENGLISH Prezzo: € 0,00 -- Questo applicativo rappresenta tutto lo sforzo eseguito da DMM informatica nel campo della sintesi vocale. Si tratta infatti di un potentissimo brevetto di motore di sintesi della voce che permette anche la creazione di voci personalizzate attraverso il training di voci umane in lingua inglese. Questo prodotto gestisce un database proprietario che contiene ben 230.000 parole inglesi dotate di corretta pronuncia fonetica, permette attraverso una interfaccia grafica vettoriale di aumentare l \' \'intelligenza fonetica della voce. E \' come detto il fiore all \' \'occhiello della ricerca e sviluppo DMM e le applicazioni derivanti dal contenuto di tale tecnologia hanno contributo ai progressi effettuati da parte di DMM nel campo della telefonia VOIP dove sintesi e riconoscimento vocale sono importanti argomenti per lo sviluppo di applicazioni di comunicazione. -- HOME Surf other categories Assistenza Software ",7);arrFiles[27]=new Array(28,"product.asp?productid=48","","Documento senza titolo","","","H O M E UBICAZIONE | SUPPORT -- REGISTER | DOWNLOAD -- Software Access 2008 Administrator PRO Firewall Manager for Windos Vista & XP Image MANAGER for Web Designers King WISE Nuovo Text-To-Speech by DMM RAS .Net Manager DLL TTS Premium ENGLISH Vetrina Su Internet Vetrina Su Internet Prezzo: € 0,00 -- Potrete disporre di una vetrina su Internet personalizzata secondo le Vostre esigenze. Grazie alla versatilità del nostro prodotto sarete in grado di autoaggiornare i vostri articoli grazie ad un semplice e veloce programma di amministrazione della vetrina che Vi permetterà anche di ricevere ordini da clienti sul Web. -- HOME Surf other categories Assistenza Software ",6);arrFiles[28]=new Array(29,"register.asp","","register.asp","","","H O M E UBICAZIONE | SUPPORT -- REGISTER | DOWNLOAD -- Registratevi a DMM Per favore compilate il modulo per diventare un cliente registrato. nome: cognome: email: indirizzo: citt&agrave;: cap: telefono: P. I.V.A. / C.F parola d \'ordine: ripetere parola d \'ordine: * Tutti i campi sono obbligatori Prego Leggere L \'informativa sulla Privacy Ai sensi della Legge 675/96, autorizzo la Ditta DMM Informatica trattare i dati da me sopra riportati per le attivit&agrave; di comunicazione, diffusione ed utilizzo interne alla azienda (ad es.: rapporti, analisi, statistiche, ecc.) cos&igrave; come per la comunicazione, diffusione e realizzazione di tutte le sue attivit&agrave;; di promozione dei propri prodotti (ad es.: fiere, seminari, dimostrazioni, mailing, telemarketing, teleprospecting, ecc.). In ogni momento, a norma dell 222articolo 13 Legge 675/96, potr&agrave;; avere accesso ai miei dati, chiederne la modifica o la cancellazione oppure oppormi al loro utilizzo scrivendo a: DMM Informatica Via Mandoli 101 16139 Genova ",7);arrFiles[29]=new Array(30,"addprod.asp?productid=52","","addprod.asp?productid=52","","","H O M E UBICAZIONE | SUPPORT -- REGISTER | DOWNLOAD -- Assistenza Manutenzione PC Desktop Manutenzione PC Desktop Prezzo:  0,00 Quanti volete ordinarne? Quantit&agrave;: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Naviga Sulle altre categorie Assistenza Software ",8);arrFiles[30]=new Array(31,"blog/aspnetaut.html","9 Aug 2008","Asp.Net Dmm Web Reference. What is the difference between Authentication and Authorization? ","","","What is the difference between Authentication and Authorization? Home Index In Asp.Net web development Authentication and Authorization are crucial for web access. Authentication is the process of obtaining identification credentials such as name and password from a user and validating those credentials against some authority. If the credentials are valid, the entity that submitted the credentials is considered an authenticated identity. Once an identity has been authenticated, the authorization process determines whether that identity has access to a given resource. The purpose of authorization is to determine whether an identity should be granted the requested type of access to a given resource . For example the authenticated identity might not be authorized to view a web page while another authenticated identity might be authorized to view the same web page. Home Index ",6);arrFiles[31]=new Array(32,"blog/aspnet0.html","9 Aug 2008","Asp.Net Reference by DMM","","","Controls Absolute position: problem easiliy solved Home Index hard to find in VS 2008 (awareness of January 2008) In Visual Studio 2008 web developement we have to go to the options in order to set the absolute positioning of controls. This is different from Visual studio 2005 Ide. Home Index ",5);arrFiles[32]=new Array(33,"blog/aspnetappsettings.html","20 Jul 2008","DMM Asp.Net reference Guide: appsettings in web.config","","","Home Index DMM ASP.NET Reference Web.Config can be a container for constant data If we take a look at the structure of a web.config file we can see that there is an appsettings section where we can store constant values. .................. &lt;configuration&gt; &lt;appSettings&gt; &lt;add key=ImagePath value=d: \\inetpub \\webs \\dmm888com \\public \\immagini \\/&gt; &lt;add key=OrganizationEmail value=assistenza@dmm888.com/&gt; &lt;add key=RootWebAddress value=http://www.dmm888.com//&gt; &lt;/appSettings&gt; &lt;connectionStrings/&gt; &lt;system.web&gt; &lt;compilation debug=false urlLinePragmas=true&gt; &lt;/compilation&gt; &lt;!-- The &lt;authentication&gt; section enables configuration of the security authentication mode used by ASP.NET to identify an incoming user. --&gt; &lt;authentication mode=Windows/&gt; &lt;customErrors mode=Off/&gt; &lt;/system.web&gt; &lt;system.codedom&gt; &lt;/system.codedom&gt; &lt;system.webServer&gt; &lt;/system.webServer&gt; &lt;/configuration&gt; ...................................................... In the code associated we can write The following to retrieve these values from the web.config file. string ImagePath = System.Configuration.ConfigurationManager.AppSettings[ImagePath]; string OrganizationEmail = System.Configuration.ConfigurationManager.AppSettings[OrganizationEmail]; string RootWebAddress = System.Configuration.ConfigurationManager.AppSettings[RootWebAddress]; Home Index ",9);arrFiles[33]=new Array(34,"blog/webconfig0.html","21 Jan 2008","Web Config in case of huge files upload","","","httpRuntime maxRequestLength This attribute is used to limit the size of uploads by rejecting any which exceed a certain limit. The limit refers to the total size of the HTTP upload in KB approximately equal to the sum of all the files being uploaded). If the size of an upload is too great the server will refuse to accept it. Because the server is refusing the request the uploading browser will report that the submission page is not available. In the example web.config file above the maxRequestLength is set to 1 GB. All these information are relevant also in the case of a web service which make a client invoke a web method on the server involving data transfer. Home Index Configuration for Uploads A number of configuration settings become very relevant when performing uploads. These can be changed by adding sections or values into the Web.Config file. A typical configuration section is given below. &lt;system.web&gt;      &lt;httpRuntime      maxRequestLength=1048576      executionTimeout=3600    /&gt;    &lt;sessionState      timeout=60    /&gt;    ... httpRuntime executionTimeout. The execution time-out refers to the number of seconds an ASP.NET page is given before the operation is assumed to have failed and the page terminated. If you are uploading a large file the code that is receiving the transfer may time out before the file has been completely uploaded. In the example web.config file above the executionTimeout is set to one hour. sessionState timeout The session time-out refers to the number of minutes before the user session is aborted. If a large file is being uploaded it is desirable to maintain the session state. The session time-out should always be longer than the amount of time you expect uploads to take. Note that this value is only relevant if you have session state enabled. In the example web.config file above the sessionState is set to one hour. ",9);arrFiles[34]=new Array(35,"blog/aspnetconn.html","14 Jun 2008","Building an Access Connection String","","","However: bit of advise. It is strongly recommended not to insert the connection string into the code of your application. Instead it is better define it into the setting section or into the web.config file. &lt;connectionStrings&gt; &lt;add name=ArubaCART connectionString=Insert here the connection string providerName= Microsoft.Jet.OLEDB.4.0/&gt; &lt;/connectionStrings&gt; Home Index DMM ASP.NET Reference ADO.NET Connection String In the following topic we \'ll deal with the building of an Access connection string using a method that is very simple and allows to immediately store the connection string in a text file. The first step is to go to the folder option and uncheck the  \'hidden known extensions for files \'. In this case we can view the file extensions. The next step is to create on the desktop of one \'s PC a file named Connection.udl Simply create a text file and then modify the extension into .udl At this point we right click the file and we open it with  \'Ole DB Core Services \' We chose the provider that could be Microsoft Jet 4 Ole DB Provider, we specify the database name and if needed the database password in the all properties tab. We verify the connection and we close the dialog. The file now contains the connection string to use with ADO.NET Objects Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C: \\Users \\Diego \\Desktop \\acart.mdb;Persist Security Info=False;Jet OLEDB:Database Password=mypass Home Index ",9);arrFiles[35]=new Array(36,"blog/wsdldisco.html","31 Aug 2008","Understanding web Services Basis","","","Home Index DMM ASP.NET Reference WSDL.EXE and DISCO.EXE Once a web service has been created and stored on an ASP.NET web server, what we need is to create a proxy class which interfaces our newly created web methods and allows exposure of them into a client project. To do so we must use two utilities on the command line of visual studio prompt: the first is disco.exe and the second is wsdl.exe firstly we write: disco http://www.dmm888.com/webservices/service.asmx The blu part is the url of the web service. in this way we create a service.wsdl file in the current directory. Once we have such wsdl file we can write: wsdl /language:vb service.wsdl  \'proxy class in vb lang. or we can write wsdl /language:cs service.wsdl // proxy class in c# lang. or we can also write wsdl /language:cpp service.wsdl // proxy class in C++ lang. in this way we obtain the proxy class to include in a client project in order to invoke the web methods of the web service. To include the new class we choose add existing item in Visual Studio IDE. WE must remember that in order to make all of this working fine we have to add the references to System.Web and System.Web.Services to the client project . Home Index ",9);arrFiles[36]=new Array(37,"blog/soa.html","18 Aug 2008","Service-oriented architecture (SOA) definition","","","Home Index DMM ASP.NET Reference Service-oriented achitecture ( SOA ) definition A service-oriented architecture (SOA) is essentially a collection of services . These services communicate with each other. The communication can involve either simple data passing or it could involve two or more services coordinating some activity. Some means of connecting services to each other is needed. Service-oriented architectures are not a new thing. The first service-oriented architecture for many people in the past was with the use DCOM or Object Request Brokers (ORBs) based on the CORBA specification. In Figure , several service consumers can invoke services by sending messages. These messages are typically transformed and routed by a service bus to an appropriate service implementation. This service architecture can provide a business rules engine that allows business rules to be incorporated in a service or across services. The service architecture also provides a service management infrastructure that manages services and activities like auditing, billing, and logging. In addition, the architecture offers enterprises the flexibility of having agile business processes, better addresses the regulatory requirements, and changes individual services without affecting other services. Home Index ",9);arrFiles[37]=new Array(38,"blog/importnamespace.html","9 Aug 2008","Dmm Asp.Net reference: Importing namespaces in no-code-behind web forms ","","","Dmm Asp.Net reference: Importing namespaces in no-code-behind web forms Home Index When an Asp.Net web form is not provided with code behind, the correct syntax for importing namespece is the following, and must be placed below the page directive at the beginning of the code. &lt;%@ Page Language=C# %&gt; &lt;%@ import Namespace=System.Data %&gt; &lt;%@ import Namespace=System.IO %&gt; &lt;%@ import Namespace=System.Net %&gt; ..................................................... -&gt; &lt;!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&gt; In this way we can use the imported namespaces, bearing in mind that we must add also the due references using the add reference menu. Home Index ",6);arrFiles[38]=new Array(39,"blog/smtpserver2008.html","18 Aug 2008","How to configure Smtp in Windows Server 2008 Enterprise","","","How to configure Smtp Mail Service in Windows Server 2008 Enterprise Home Index There are steps that must be followed in order to have the smtp service correctly configured: When we get a fresh copy of Windows Server 2008, we don \'t have Internet Information 7 installed by default; we have to install it and we must add all the II 6.0 compatibility. Once we have it we must install the Smtp Server feature SMTP Server uses a Microsoft Management Console for administration. SMTP virtual servers are created and configured by using Internet Information Services (IIS) 6.0 Manager. Administrators can use other Windows Server 2008 administration features including Simple Network Management Protocol (SNMP), event logs, and transaction logs to collect usage statistics, track messages and transactions, and examine usage patterns. To install Smtp Server we must add the feature for Smtp Server At this point we are ready to configure it. First of all we have to launch Internet Information Services (IIS) Manager 7.0 (the new version) and Going in a web site that we want to have Smtp mail delivery configured. There we must fill all the requested parameters and then we have to open the Management console of II 6.0 in order to Grant reliability for messages. In the end we can use the passwordrecovery in built login control to test Smtp Functionality Home Index ",7);arrFiles[39]=new Array(40,"blog/smtpantivirus.html","9 Aug 2008","Asp.Net Dmm Web Reference. Smtp mail fails to be received from clients that have Active AV protection","","","Pretty Time consuming finding the issue of not receiving smtp mail. Home Index A client can be prevented from receiving smtp mail if it has onboard Antivirus active protection from General purpose antivirus products. This note is an important reminder that we must check our antivirus protector for redirection of the smtp port TCP n° 25 in order to avoid the annoying situation of not receiving smtp mail. Usually there is a provider which manages the email and it must thourogly checked in order to allow incoming smtp mail. Home Index ",5);arrFiles[40]=new Array(41,"blog/smtpmail.html","11 Aug 2008","Sending mail using System.Net.Mail .Net framework class and Smtp virtual server","","","Sending mail using System.Net.Mail .Net framework class and Smtp virtual server Home Index We have two fragments of code that can be useful in case of sending mail using .Net classes and Smtp virtual server. Both samples send 1 mailmessage with attachment to three different recipients. ******* ************** First sample The scenario is: ********************************************** // this is the case of a server that has its own smtp service , no credential required try{ string mailServerName = 127.0.0.1; // we have to configure in the rely options of smtp config string subject = Hello; string body = This is the body of the message; SmtpClient mailClient = new SmtpClient(mailServerName, 25); mailClient.DeliveryMethod = SmtpDeliveryMethod.Network; MailAddress afrom = new MailAddress(thesender@dmmserver.it); MailAddress ad = new MailAddress(diego.burlando@yahoo.it); MailAddress ad1 = new MailAddress(monica@dmm888.com); MailAddress ad2 = new MailAddress(burlandodiego@alice.it); MailMessage message = new MailMessage(); message.To.Add(ad); message.To.Add(ad1); message.To.Add(ad2); message.From = afrom; message.Body = body; message.Subject = subject; Attachment at = new Attachment(Server.MapPath(@logo.jpg)); // the image must exist on pain of exception message.Attachments.Add(at); message.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess; message.Priority=MailPriority.High; mailClient.Send(message); Label1.Text = Message sent; return; } catch(Exception ex) { Label1.Text = ex.ToString(); return; } ******* ************** Second sample The scenario is: ******************************************* // this is the case of interfacing a smtp server on the Internet providing credentials try { string mailServerName = out.alice.it; // name of Alice smtp server // in case of Aruba provider string mailServerName = smtp.dmm888.com; // name of Aruba smtp server string subject = Hello; string body = This is the body of the message; SmtpClient mailClient = new SmtpClient(mailServerName, 25); NetworkCredential cred = new NetworkCredential(burlandodiego, ********); // the password of the mail Service provider Alice // in case of Aruba provider //NetworkCredential cred = new NetworkCredential(assistenza@dmm888.com, ****);// Aruba mail password mailClient.Credentials = cred; mailClient.UseDefaultCredentials = false; mailClient.DeliveryMethod = SmtpDeliveryMethod.Network; MailAddress afrom = new MailAddress(burlandodiego@alice.it); //Should the sender be an Alice member on pain of lost mail? Verify! MailAddress ad = new MailAddress(diego.burlando@yahoo.it); MailAddress ad1 = new MailAddress(monica@dmm888.com); MailAddress ad2 = new MailAddress(burlandodiego@alice.it); MailMessage message = new MailMessage(); message.To.Add(ad); message.To.Add(ad1); message.To.Add(ad2); message.From = afrom; message.Body = body; message.Subject = subject; Attachment at = new Attachment(Server.MapPath(@logo.jpg)); // the image must exist on pain of exception message.Attachments.Add(at); message.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess; message.Priority = MailPriority.High; mailClient.Send(message); Label1.Text = Message sent; return; } catch (Exception ex) { Label1.Text = ex.ToString(); return; } Home Index ",10);arrFiles[41]=new Array(42,"blog/Autoeventwireup.html","31 Aug 2008","Asp.Net Reference by DMM: AutoEventWireup","","","AutoEventWireup has important differences wether in C# or VB.NET Download sample Code Home Index The default value for AutoEventWireup is true for a C# web form, and false for a VB.NET web form. The IDE adds the default values to the @ Page directive for a new web form. The difference in defaults is partly because VB.NET has a mechanism for defining an event handler and subscribing to an event (by means of the Handles keyword). An easy way to generate the above code is to use the drop down controls that sit just above the editor. Note: C# doesn’t make the dropdown list of events available when editing a code-behind file, but the dropdown is available when writing in-line code . There is no equivalent to the Handles keyword in C# . When AutoEventWireup is true, all we need to do is follow the method naming convention of Page_ EventToHandle . The ASP.NET runtime will automatically find and fire the method for the appropriate event. protected void Page_Init(object sender, EventArgs e) { } Here follows an example code of a web form in C# where we can choose to set AutoEventWireup to its default (true) or false: The example also shows the priority of event firing putting some text relate to the event fired in a listbox. using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class Example : System.Web.UI.Page { public Example() { // AS default we have AutoEventWireUp = true so base page events are automatically intercepted// if we set the value of //AutoEventWireUp to false we have to decomment the following code in the class constructor //PreInit += new EventHandler(Page_PreInit); //InitComplete += new EventHandler(Page_InitComplete); //PreLoad += new EventHandler(Page_PreLoad); //Load += new EventHandler(Page_Load); //LoadComplete += new EventHandler(Page_LoadComplete); //PreRender += new EventHandler(Page_Prerender); //PreRenderComplete += new EventHandler(Page_PrerenderComplete); //SaveStateComplete += new EventHandler(Page_SaveStateComplete); } protected void Page_PreInit(object sender, EventArgs e) { if(!Page.IsPostBack) Lb.Items.Add(This is Page _PreInit); } protected void Page_Init(object sender, EventArgs e) { if (!Page.IsPostBack) Lb.Items.Add(This is Page _Init); } protected void Page_InitComplete(object sender, EventArgs e) { if (!Page.IsPostBack) Lb.Items.Add(This is Page _InitComplete); } protected void Page_PreLoad(object sender, EventArgs e) { if (!Page.IsPostBack) Lb.Items.Add(This is Page _Preload); } protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) Lb.Items.Add(This is Page _Load); } protected void Page_LoadComplete(object sender, EventArgs e) { if (!Page.IsPostBack) Lb.Items.Add(This is Page _LoadComplete); } protected void Page_DataBinding(object sender, EventArgs e) { if (!Page.IsPostBack) Lb.Items.Add(This is Page _DataBind); } protected void Page_Prerender(object sender, EventArgs e) { if (!Page.IsPostBack) Lb.Items.Add(This is Page _Prerender); } protected void Page_PrerenderComplete(object sender, EventArgs e) { if (!Page.IsPostBack) Lb.Items.Add(This is Page _PrerenderComplete); } protected void Page_Unload(object sender, EventArgs e) { // Some code for the unload event } protected void Page_Error(object sender, EventArgs e) { Context.Response.ToString(); Response.Write(An error occured); } protected void Page_SaveStateComplete(object sender, EventArgs e) { if (!Page.IsPostBack) Lb.Items.Add(This is Page _SaveStateComplete); } protected void Lb_SelectedIndexChanged(object sender, EventArgs e) { Lbl.Text = Lb.SelectedItem.Value.ToString(); } } Running the sample we can see in the listbox the correct course of events. It \'s interesting to observe the fact that after a postback some events won \'t fire any more. Home Index ",10);arrFiles[42]=new Array(43,"blog/Passdata.html","1 Jul 2009","DMM Asp.Net reference Guide: passing data among webforms using application.lock","","","Home Index DMM ASP.NET Reference Passing data among webforms locking the web application Download sample Case used when it is not allowed to use Session Variables The following example is very useful when it is important to transfer data among two webforms. .................. // First webform data creation DataTable tb = new DataTable(); tb.Columns.Add(new DataColumn(name,typeof(System.String))); tb.Columns.Add(new DataColumn(code, typeof(System.Int32))); DataRow rw = tb.NewRow(); rw[name] = My name; rw[code] = 1233; DataRow rw1 = tb.NewRow(); rw1[name] = My other name; rw1[code] = 1234; tb.Rows.Add(rw); tb.Rows.Add(rw1); ViewState.Add(Table, tb); // Calling the second webform from the first using javascript from code behind DataTable tb = (DataTable)ViewState[Table]; // data rescue Application.Lock(); System.IO.Stream st = new FileStream(Server.MapPath(@~ \\mydata.xml),FileMode.Create,FileAccess.Write); tb.WriteXml(st, XmlWriteMode.WriteSchema); st.Close(); // Build the JavaScript String System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append(&lt;script language= \'javascript \'&gt;); sb.Append(window.open( \'destination.aspx \', \'_blank \')); sb.Append(&lt;/script&gt;); // The following is obsolete // Page.RegisterStartupScript(open, sb.ToString()); // The following is used at present // Register the script code with the page. Page.ClientScript.RegisterClientScriptBlock(Type.GetType(System.String),open,sb.ToString()); // Event page load of the second webform protected void Page_Load(object sender, EventArgs e) { DataTable tb = new DataTable(); tb.ReadXml(Server.MapPath(@~ \\mydata.xml)); File.Delete(Server.MapPath(@~ \\mydata.xml)); Application.UnLock(); GridView1.DataSource = tb; GridView1.DataBind(); } ...................................................... Locking the application and unlocking it as soon as the file has been deleted assures that application \'s different users don \'t cuncurr and the data are always safe for every session. Home Index ",10);arrFiles[43]=new Array(44,"blog/cppwindows2.html","30 Jan 2008","Using The CFile object to perform Input/output","","","MFC Input/output using CFile object Home Index // In the following MFC code fragment we use the CFile object to read a finite // numbers of audio chunks. The sample provides also the CFileDialog Object // which exposes the interface for selecting an audio file // The first thing to do is to create an interface to get the file name to open static char BASED_CODE szFilter[]= Triphones Info Voice Files(*.tri)|*.tri|Only DMM Modified voice Files(*tri*)|*tri*||; CFileDialog fileDlg (TRUE, tri, *.tri,OFN_HIDEREADONLY, szFilter, this); // now we can process the file we have just chosen if( fileDlg.DoModal ()==IDOK ) { int len ; // we open our file for reading CFile Fi(fileDlg.GetPathName(),CFile::modeRead|CFile::shareDenyNone); // we read the first bytes of the file where we have the number of audio chunks Fi.Read(&amp;len, sizeof(int)); lentriphon = new int[len]; // we alloc memory for every chunk size container Fi.Read(lentriphon, sizeof(int) * len); // we read the sizes of every chunk // now lentriphon contains a number equal to len of chunk sizes soundstriphon = new byte*[len]; // here we declare an array len audio chunks for(int i = 0 ; i &lt; len; ++i) // we cycle for every chunk { // we allocate the memory and we read the content of every chunk providing its length soundstriphon[i]= (byte*)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY, lentriphon[i] ); Fi.Read(soundstriphon[i],lentriphon[i]); } // when done we can close our file Fi.Close();VoiceType=CString(NOT DMM voice Module: USER MOFIFIED VOICE:); } Writing files with a CFile object The following example shows instead how to write to a file using the CFile object // The first thing to do is to create an interface to get the file name to open static char BASED_CODE szFilter[] = BTriphonems Knowledge (*.tri)|*.tri|Only DMM BTriphonems Knowledge(*tri*)|*tri*||; CFileDialog fileDlg (FALSE, tri, *.tri, OFN_HIDEREADONLY, szFilter, this); // now we can process the file we have just chosen if( fileDlg.DoModal ()==IDOK ){int len = 5000; CFile Fi(fileDlg.GetPathName(),CFile::modeCreate|CFile::modeWrite); // we open the file for writing Fi.Write(&amp;len, sizeof(int)); Fi.Write(lenbuf,sizeof(int)*5000); // we write 5000 chunks so the number for(int i = 0 ; i &lt; 5000; ++i) { Fi.Write(bufsound[i],lenbuf[i]); // here we write every chunk } Fi.Close(); } We must remember then when we write into a file, the file pointer of thre CFile object automatically move to the new position so we don \'t have to bother ourselves in managing the file position Home Index ",5);arrFiles[44]=new Array(45,"blog/cppwindows1.html","1 Jul 2009","Basic C++ file input/output","","","Home Index Basic C++ file input/output The following code is for reading binary data from a file FILE *fp =0; char * bufByte=0; short * bufShort=0; long lenBuffer=0; fp= fopen(test.bin, r+b); // using binary mode plus read/write mode int ret= fseek(fp, 0, SEEK_END); // I move the file pointer to the end of file so I can read its length lenBuffer=ftell(fp); // here I read the file length rewind(fp); // I move the pointer back to the beginning if (bufByte != NULL) {delete[] bufByte;} // just to clean up bufByte = new char[lenBuffer]; memset(bufByte,0,lenBuffer); // we zero the buffer content fread(bufByte, 1, lenBuffer, fp); fclose(fp); bufShort = (short*) bufByte; // we cast to short lenBuffer = lenBuffer/2; printf(%s %d \\n,The file size worked out with fopen is: ,_msize(bufShort)); // _msize is a c function of crt and returns size //now if we want to write the buffer content into another file we do: FILE *fpW =0; fpW= fopen(TestW.bin, w+b); // using binary mode plus read/write //mode fwrite(bufshort,2,lenBuffer,fpW); //we write the array of short whose size is //2 bytes fclose(fpW); delete [] buf; delete [] buftemp; delete[] bufByte; bufByte=0; bufShort=0; lenBuffer=0; The following table shows modes of opening a file using fopen r Open a file for reading. The file must exist. w Create an empty file for writing. If a file with the same name already exists its content is erased and the file is treated as a new empty file. a Append to a file. Writing operations append data at the end of the file. The file is created if it does not exist. r+ Open a file for update both reading and writing. The file must exist. w+ Create an empty file for both reading and writing. If a file with the same name already exists its content is erased and the file is treated as a new empty file. a+ Open a file for reading and appending. All writing operations are performed at the end of the file, protecting the previous content to be overwritten. You can reposition (fseek, rewind) the internal pointer to anywhere in the file for reading, but writing operations will move it back to the end of file. The file is created if it does not exist. With the mode specifiers above the file is open as a text file . In order to open a file as a binary file , a b character has to be included in the mode string. This additional b Home Index ",11);arrFiles[45]=new Array(46,"blog/cppwindows3.html","22 Aug 2008","The power of casting in pure C++","","","Casting classes to integral type Home Index // This sample shows proficient pointer usage and casting towards integral type char #include stdafx.h class alfa { private: int a,b,c,d,e,f,g; public: alfa(){} alfa(int n,int m); void init(int n,int m); }; // The implementation of the constructor and member functions outside the class definition alfa::alfa(int n,int m) { a=n; b=m; } void alfa::init(int n,int m) { a=n; b=m; } // Now we can take a look to the implementation of a main body int _tmain(int argc, _TCHAR* argv[]) { alfa * inst; inst = new alfa(3,6); char * teta = (char*)(inst); delete [] teta; // if we delete teta we deallocate also inst so we must not delete inst because // it would be as if we deallocate again the same memory region. alfa * k; // we use the default constructor but a and b are not initialized in this way k = new alfa(3,6); // some usage of the newly created object delete k; alfa * g; g = new alfa[40]; // we create 40 objects of alfa type but a and b are not initialized for // everyone of the 40 objects. g[23].init(3,6) ; // For example we init the 24 th item delete [] g; // Some usage of the newly created object // then cleanup delete inst; return 0; } Following this guide we can write on a file the entire content of objects casting them to char and then write the char array into a file using input output C file operations. Home Index ",4);arrFiles[46]=new Array(47,"blog/memcpy.html","4 Jul 2008","memcpy in C,/C++ unmanaged","","","The power of memcpy when needed to copy memory regions Home Index In C++ unmanaged we inherit from  C a function that is common to every platform which can be of immense help when a memory region given by an allocated pointer must be copied into another region by means of a pointer which must be allocated to a given size that could be the same size of the source pointer or a different size. // we first declare the origin bufer char * buffer; buffer = new char[1000]; // we allocate it for(int i=0; i&lt;=1000; ++ i) {buffer[i]= \'a \';} // we fill the buffer with values // we declare the destination buffer char * bufferdest; bufferdest = new char[1000]; // we allocate it memcpy(bufferdest,buffer,1000); // here we perform the copy of the first buffer into the second // at last we can delete the origin buffer having safely copied its content into the // destination buffer delete[] buffer; buffer=NULL; The power of memcpy resides also in its capability to perform copies of partial content using the &amp; operator, which tells to the function where to start from, enabling in this way a mechanism of control upon the original content. // we first declare the origin bufer char * buffer; buffer = new char[1000]; // we allocate it for(int i=0; i&lt;=1000; ++ i) {buffer[i]= \'a \';} // we fill the buffer with values // we declare the destination buffer char * bufferdest; bufferdest = new char[900]; // we allocate it memcpy(bufferdest,&amp;buffer[100],900); // here we perform the copy of the last 900 bytes of the first buffer into the second // at last we can delete the origin buffer having safely copied its content into the // destination buffer delete[] buffer; buffer=NULL; Home Index ",5);arrFiles[47]=new Array(48,"blog/criticalsection.html","5 Jul 2008","Multithreading Windows C++ Specific: Critical Section object","","","The importance of Critical Section Object in a Multithreaded environment Home Index The critical section object is a multithreading object that avoid multiple thread running at the same time to share a common resource if not ready. The following sample can be copied and pasted into a C++ unmanaged proget (win32 project) and studied to understand the utility of the CRITICAL_SECTION object /*I have a first thread that fills the array with random numbers. I have a second thread that checks the array and if an element is greater than 90 it becomes 0 so the array is modified. I have a third thread that prints the content of this array to the console.     BY DMM                  */ #include &lt;windows.h&gt; #include &lt;process.h&gt;    /* _beginthread, _endthread */ #include &lt;iostream&gt; void Get(void*);  void Check(void*);      void Print(void*); /* GetRandom returns a random integer between min and max. */ #define GetRandom( min, max ) ((rand() % (int)(((max) + 1) - (min))) + (min)) int data[20]; static int count;static int m=20;static int pause=1000; static bool time_toget=false; static bool time_tocheck=false; static bool time_toprint=false; CRITICAL_SECTION  cri;             int main() { InitializeCriticalSection(&amp;cri); time_toget=true;  _beginthread( Get, 0, NULL );      Sleep(10); _beginthread( Check, 0, NULL  );   Sleep(10); _beginthread( Print, 0, NULL  );   Sleep(10); Sleep(INFINITE); /* We must wait otherwise the process terminate*/ } void Get(void*) { while(true) { EnterCriticalSection(&amp;cri); /* Only this thread can work, the others are idle*/ if(time_toget==true) { printf(Getting Random numbers \\n); for(int j = 0; j &lt; m ;j++) data[j] = GetRandom( 0, 100 ); time_toget=false;time_toprint=false;time_tocheck=true; LeaveCriticalSection(&amp;cri); /* I enable the other threads to gain processor time */ } else LeaveCriticalSection(&amp;cri); } } void Check(void*) { while(true) {           EnterCriticalSection(&amp;cri); /* Only this thread can work, the others are idle*/ if(time_tocheck==true) { printf(Checking Values &gt; 90 \\n); for(int j = 0; j &lt; m ;j++) {if( data[j] &gt;= 90) data[j]= 0;  } time_tocheck=false;time_toget=false;time_toprint=true; LeaveCriticalSection(&amp;cri); /* I enable the other threads to gain processor time */ } else LeaveCriticalSection(&amp;cri);         } } void Print(void*) { while(true) { EnterCriticalSection(&amp;cri); /* Only this thread can work, the others are idle*/ if(time_toprint==true) { printf(PRINTING VALUES \\n); for(int j = 0; j &lt; m ;j++) printf(%d \\t, data[j]); printf( \\n); count++; if(count==40)ExitProcess(0); /* For example we have 40 calculations*/ time_toprint=false;time_toget=true; LeaveCriticalSection(&amp;cri); /* I enable the other threads to gain processor time */ } else LeaveCriticalSection(&amp;cri); } } Home Index ",6);arrFiles[48]=new Array(49,"blog/cppnetbinreading.html","29 Jul 2008","How to perform binary reading of a file In Managed C++.Net Framework 2.0/3.5","","","Home Index DMM C++.NET Reference Binary reading Using C++.Net code In C++.NET we Have to get accustomed to a new syntax for defining a byte array The following example shows how to load into a byte array the content of an image file array&lt;unsigned char,1&gt; ^ myimage; // New syntax FileStream ^ alfa; alfa = gcnew FileStream(myfilename , IO::FileMode::Open, IO:FileAccess::Read); myimage = gcnew array&lt;unsigned char,1&gt;((int)alfa-&gt;Length); // Allocation alfa-&gt;Read(myimage, 0, (int)alfa-&gt;Length); alfa-&gt;Close(); // Now we have the myimage byte array filled with the content of the file. // No deallocation of the array is needed when out of scope because of garbage collection Home Index ",8);arrFiles[49]=new Array(50,"blog/listboxchangecolor.html","21 Aug 2008","How to change the color of a selected item in a Windows.Forms Listbox or other scrollable controls","","","Home Index DMM C++.Net reference guide How to change the color of a selected item in a Windows.Forms Listbox or other scrollable controls In order to change the appearance of a Windows Forms listbox or combobox we have to override the event DrawItem of the control itself. Given a ListBox control named lb, we \'ll write the following private: System::Void lb_DrawItem(System::Object^ sender, System::Windows::Forms::DrawItemEventArgs^ e) { // Set the DrawMode property to draw fixed sized items. = OwnerDrawFixed e-&gt;DrawBackground(); // The selection Backcolor in red if ( (e-&gt;State &amp; DrawItemState::Selected) == DrawItemState::Selected ) {e-&gt;Graphics-&gt;FillRectangle(System::Drawing::Brushes::Red, e-&gt;Bounds);} // And now we draw the items in the white color SolidBrush ^b; b = gcnew SolidBrush(Color::White); e-&gt;Graphics-&gt;DrawString(lb-&gt;GetItemText(lb-&gt;Items[e-&gt;Index]),e-&gt;Font ,b,e-&gt;Bounds); e-&gt;DrawFocusRectangle(); } Home Index ",8);arrFiles[50]=new Array(51,"blog/fileassociations.html","15 Aug 2008","How to estabilish file associations for a C++.Net Windows Forms Application","","","Home Index DMM C++.NET Reference Managing File associations deploying a Windows Forms Application. This task is very important because it’s crucial in an application for its user being able to launch it, simply double-clicking a file which is supposed to be loaded by the app itself. Let’s for example imagine an application which manages graphic files like Bitmaps, Jpeg or other popular formats; it is certainly proficient and no time consuming, for an user who has a bitmap image on his desktop to open it by double clicking on it and immediately have its content shown in the canvas of the application. This feature is common to many programs in Windows and can be added to a specific application following two steps: The first step is to make the application acknowledged of the file to launch when the user double click the file itself. The second step is to instruct the Application deployer (normally a setup program) which extensions of files are recognized and opened by the app , in order to setup a file associations for a specific set of file extensions. At setup time the installation will provide for the associations and all the files with chosen extension, will be opened instantly. Let’s analyze the first step. In a C++.Net Windows Forms application we have an entry point for the application which is a main function. For example in Visual studio 2008 such entry point is built by default as follows: [STAThreadAttribute] int main(array&lt;System::String ^&gt; ^args) { // Enabling Windows XP visual effects before any controls are created Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); // Create the main window and run it Application::Run(gcnew Form1()); return 0; } We can see that the main function has a string array as the only parameter and it contains the command line arguments that accompany the application (if there are). If we run the application by the command line and we add the name of a file which is supposed to open in the app itself the string array contains as unique element the name of the file  added by the command line. If we modify the above code in order to extract the argument of the command line we make the application aware of the filename: [STAThreadAttribute] int main(array&lt;System::String ^&gt; ^args) { // Enabling Windows XP visual effects before any controls are created Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); // args can be used to extract the filename to open  and create // a function in The Form1 class that take charge of this task Form1 ^ Myinstance= gcnew(Form1); Myinstance-&gt;CommandlinearrayCreatedInsideTheClass = args // Notification of arg to the class by means of //a public variable inside the main class of the application // Create the main window and run it Form1 ^ Myinstance= gcnew(Form1); Application::Run(Myinstance); } The second step allows to give the application the capability to open a file double-clicking on it, because when we double-click on an associated file the args array populates with an unique element which has the zero index of the array args and contains the filename as a string. Associations is easily settled in the setup project of the application where there is the opportunity to set it up for as long as many file extensions are needed. Right clicking the setup project in Solution Explorer, choosing View-&gt;File Types we can add the extensions and the command which is referred to the primary output of the project; we can also choose the icons for every extension working in the property page of a specific file extension. Once the app is installed every file with the extension added will have its icon and will be opened by the application by a simple double-click. Home Index ",12);arrFiles[51]=new Array(52,"blog/skeletonmanunman.html","28 Sep 2008","A skeleton Solution in Visual C++.net windows Form able to work with unmanaged code","","","Home Index Working with unmanaged support and unmanaged multithreading in Windows Forms Here is a sample skeleton of Visual Studio solution enhanced with all the necessary to work with unmanaged code; Also MFC support can be enabled but in this case debugging features are not available, so it \'s better to stick only to native code capability and standard library support DOWNLOAD SAMPLE Home Index ",7);arrFiles[52]=new Array(53,"blog/cppmultipleinerit.html","28 Sep 2008","A bunch of classes built in order to show interesting features of multiple Ineritance","","","Home Index Multiple Ineritance in C++ Download class library For Visual Studio 2008 sample // Remember: The ref specifier in a class declaration indicates that this class is of managed Type // in managed code there is not multiple ineritance; only when deriving unmanaged code multiple // ineritance is possible. #pragma once using namespace System; namespace Myclasslibrarycpp { //public ref class Tool managed class only single ineritance public class Tool { private: int alfa,beta; public: Tool(void) {} Tool(int a,int b) { alfa=a; beta=b; } public: void PrepareData(int q); }; public class Tool1 { private: int alfa,beta; public: Tool1(void) {} Tool1(int a,int b) { alfa=a; beta=b; } public: int PrepareDataAndReturn(int q,int w,int z); }; public class Aider { public: Aider() {} ~Aider() {delete this;} protected: char stringname[255]; protected: int AiderTask(int y) {return y+5;} }; public class Mixedtools: public Tool,protected Aider, public Tool1 { public: Mixedtools() {} public: int Task(int y) {return y+5;} ~Mixedtools() {delete this;} public: char* Data(void) {return this-&gt;stringname;} // note that deriving protected from Aider determines that all protected members //of Aider become private }; } // ***************IMPLEMENTATION CLASSES ****************************************** namespace WorkerNamespace { using namespace Myclasslibrarycpp; public class Worker { public: Worker() {} public: int DoTask(void) { Mixedtools *temp; temp = new Mixedtools; return temp-&gt;Task(34); } }; } Home Index ",10);arrFiles[53]=new Array(54,"blog/Createfileforvolumes.html","3 Jan 2009","CreateFile and IO operations on Volumes.","","","Home Index Deep C Using CreateFile to deal with a Disk in the same way as it were a file. The following code snippet demonstrates how to backup an USB pen drive into an image file. #include stdafx.h #include &lt;windows.h&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;tchar.h&gt; int _tmain(int argc, _TCHAR* argv[]) { char * buffer; DWORD m_Bufsize=102400; buffer = new char[m_Bufsize]; //100 Kb buffer DWORD dwBytesRead=0; DWORD dwBytesWritten=0; HANDLE MF = CreateFile(TEXT(c: \\ \\image.pen), // The backup file we want to create GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); HANDLE MC = CreateFile(TEXT( \\ \\ \\ \\. \\ \\PhysicalDrive2), // The drive we want to get data and store in image file GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); // Now we lock the volume int lo= DeviceIoControl( //If the operation completes successfully, DeviceIoControl returns a nonzero value. MC, // handle to a volume FSCTL_LOCK_VOLUME, // dwIoControlCode NULL, // lpInBuffer 0, // nInBufferSize NULL, // lpOutBuffer 0, // nOutBufferSize &amp;dwBytesWritten, // number of bytes returned NULL // OVERLAPPED structure ); if ( MF != INVALID_HANDLE_VALUE &amp;&amp; MC != INVALID_HANDLE_VALUE ) { // Here we read the whole content of the drive into the image file do { ReadFile(MC, buffer,m_Bufsize,&amp;dwBytesRead,NULL); WriteFile(MF,buffer,dwBytesRead,&amp;dwBytesWritten,NULL); } while (dwBytesRead == m_Bufsize); } // we unlock the volume int unlo = DeviceIoControl(//If the operation completes successfully, DeviceIoControl returns a nonzero value. MC, FSCTL_UNLOCK_VOLUME , NULL, 0, NULL, 0, &amp;dwBytesWritten, NULL ); CloseHandle(MF); CloseHandle(MC); delete [] buffer; return 0; } The following code snippet reverts the above procedure writing the backup image file on the pen drive. #include stdafx.h #include &lt;windows.h&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;tchar.h&gt; int _tmain(int argc, _TCHAR* argv[]) { char * buffer; DWORD m_Bufsize=102400; buffer = new char[m_Bufsize]; //100 Kb buffer DWORD dwBytesRead=0; DWORD dwBytesWritten=0; HANDLE MF = CreateFile(TEXT(c: \\ \\image.pen), // The backup file we want to copy restore on pen drive GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); HANDLE MC = CreateFile(TEXT( \\ \\ \\ \\. \\ \\PhysicalDrive2), // The drive we want to restore from image. GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); // Now we lock the volume int lo= DeviceIoControl( //If the operation completes successfully, DeviceIoControl returns a nonzero value. MC, // handle to a volume FSCTL_LOCK_VOLUME, // dwIoControlCode NULL, // lpInBuffer 0, // nInBufferSize NULL, // lpOutBuffer 0, // nOutBufferSize &amp;dwBytesWritten, // number of bytes returned NULL // OVERLAPPED structure ); if ( MF != INVALID_HANDLE_VALUE &amp;&amp; MC != INVALID_HANDLE_VALUE ) { // Here we read the whole content of the imagefile and write it to the pen drive do { ReadFile(MF, buffer,m_Bufsize,&amp;dwBytesRead,NULL); WriteFile(MC,buffer,dwBytesRead,&amp;dwBytesWritten,NULL); } while (dwBytesRead == m_Bufsize); } // we unlock the volume int unlo = DeviceIoControl( //If the operation completes successfully, DeviceIoControl returns a nonzero value. MC, FSCTL_UNLOCK_VOLUME , NULL, 0, NULL, 0, &amp;dwBytesWritten, NULL ); CloseHandle(MF); CloseHandle(MC); delete [] buffer; return 0; } In this way it is possible to manage Volumes in the same way as if they were files. It is important however to lock and unlock the volumes, because CreateFile usage on volumes has been Restricted in Windows Vista And Windows Server 2008, so Locking the volume override these limitations of usage. Home Index ",14);arrFiles[54]=new Array(55,"blog/HDpartitioning.html","3 Jan 2009","How to create NTFS partitions on hard disk","","","DEP C How to partitionate an hard disk with up to 4 NTFS partitions Home Index // Disk.cpp : Defines the entry point for the console application. #include stdafx.h #include &lt;windows.h&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;tchar.h&gt; int _tmain(int argc, _TCHAR* argv[]) { BOOL Result; DWORD szReturned; unsigned int SectorSize = 512; LARGE_INTEGER Part_1_Size; Part_1_Size.QuadPart = 10737418240; // 10 Gigabytes FOR EVERY PARTITION // We must size the following structure with 4 size of the PARTITION_INFORMATION_EX DWORD szNewLayout = sizeof(DRIVE_LAYOUT_INFORMATION_EX)+4*sizeof(PARTITION_INFORMATION_EX); DRIVE_LAYOUT_INFORMATION_EX *dl = (DRIVE_LAYOUT_INFORMATION_EX*) new BYTE[szNewLayout]; // The trick // Open handle to physical device // NtCreateFile() function can be used too with  \\ \\device \\ \\harddisk1 \\ \\partiton0 path. HANDLE hDrive=CreateFile(TEXT( \\ \\ \\ \\. \\ \\PhysicalDrive2), GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if(!hDrive){return -1;} // Problems getting the handle of the hard drive CREATE_DISK disk; ZeroMemory(&amp;disk,sizeof(CREATE_DISK)); disk.PartitionStyle = PARTITION_STYLE_MBR; disk.Mbr.Signature = 0xA4B57300; // the signature can generated using random number // Create primary partition MBR Result = DeviceIoControl(hDrive,IOCTL_DISK_CREATE_DISK,&amp;disk,sizeof(CREATE_DISK),NULL,0,&amp;szReturned,NULL); if(!Result){return -1;} // Fail to create disk DeviceIoControl(hDrive, IOCTL_DISK_UPDATE_PROPERTIES, NULL, 0, NULL, 0, &amp;szReturned, NULL); // Now we prepare data for the 4 partitions, 10 gb each. ZeroMemory(dl,szNewLayout); dl-&gt;PartitionEntry[0].PartitionStyle = PARTITION_STYLE_MBR; dl-&gt;PartitionEntry[0].StartingOffset.QuadPart = (63 * 512); // 63 sectors are hidden sectors in Hard Disks dl-&gt;PartitionEntry[0].PartitionLength = Part_1_Size; dl-&gt;PartitionEntry[0].PartitionNumber = 1; dl-&gt;PartitionEntry[0].RewritePartition = TRUE; dl-&gt;PartitionEntry[0].Mbr.PartitionType = 0x07; // PARTITION_IFS (NTFS partition or logical drive) //dl-&gt;PartitionEntry[0].Mbr.BootIndicator = TRUE; dl-&gt;PartitionEntry[0].Mbr.RecognizedPartition = 1; dl-&gt;PartitionEntry[0].Mbr.HiddenSectors=(63 * 512); dl-&gt;PartitionEntry[1].PartitionStyle=PARTITION_STYLE_MBR; dl-&gt;PartitionEntry[1].StartingOffset.QuadPart= (63 * 512) + Part_1_Size.QuadPart; dl-&gt;PartitionEntry[1].PartitionLength = Part_1_Size; dl-&gt;PartitionEntry[1].PartitionNumber=2; dl-&gt;PartitionEntry[1].RewritePartition = TRUE; dl-&gt;PartitionEntry[1].Mbr.PartitionType = 0x07; // or PARTITION_IFS dl-&gt;PartitionEntry[1].Mbr.RecognizedPartition = 1; dl-&gt;PartitionEntry[1].Mbr.HiddenSectors = (63 * 512); dl-&gt;PartitionEntry[2].PartitionStyle=PARTITION_STYLE_MBR; dl-&gt;PartitionEntry[2].StartingOffset.QuadPart=(63 * 512)+ 2* Part_1_Size.QuadPart; dl-&gt;PartitionEntry[2].PartitionLength = Part_1_Size; dl-&gt;PartitionEntry[2].PartitionNumber=3; dl-&gt;PartitionEntry[2].RewritePartition = TRUE; dl-&gt;PartitionEntry[2].Mbr.PartitionType = 0x07; dl-&gt;PartitionEntry[2].Mbr.RecognizedPartition = 1; dl-&gt;PartitionEntry[2].Mbr.HiddenSectors = (63 * 512); dl-&gt;PartitionEntry[3].PartitionStyle=PARTITION_STYLE_MBR; dl-&gt;PartitionEntry[3].StartingOffset.QuadPart=(63 * 512)+3* Part_1_Size.QuadPart; dl-&gt;PartitionEntry[3].PartitionLength = Part_1_Size; dl-&gt;PartitionEntry[3].PartitionNumber=4; dl-&gt;PartitionEntry[3].RewritePartition = TRUE; dl-&gt;PartitionEntry[3].Mbr.PartitionType = 0x07; dl-&gt;PartitionEntry[3].Mbr.RecognizedPartition = 1; dl-&gt;PartitionEntry[3].Mbr.HiddenSectors = (63 * 512); // set RewritePartition=true in every partition to force rewrite. for (int item=0;item&lt;4;item++) dl-&gt;PartitionEntry[item].RewritePartition = 1; // setup drive layout dl-&gt;PartitionStyle = PARTITION_STYLE_MBR; dl-&gt;PartitionCount = 4;// specify AT LEAST 4 partitions!!! dl-&gt;Mbr.Signature = 0xA4B57300; // Create partitions Result = DeviceIoControl(hDrive, IOCTL_DISK_SET_DRIVE_LAYOUT_EX, dl, szNewLayout, NULL, 0, &amp;szReturned, NULL); // update disk properties DeviceIoControl(hDrive, IOCTL_DISK_UPDATE_PROPERTIES, NULL, 0, NULL, 0, &amp;szReturned, NULL); CloseHandle(hDrive); delete dl; return 1; // Success } Hints for PartitionType Partition Type Meaning PARTITION_ENTRY_UNUSED Unused entry. PARTITION_FAT_12 Specifies a partition with 12-bit FAT entries. PARTITION_XENIX_1 Specifies a XENIX Type 1 partition. PARTITION_XENIX_2 Specifies a XENIX Type 2 partition. PARTITION_FAT_16 Specifies a partition with 16-bit FAT entries. PARTITION_EXTENDED Specifies an MS-DOS V4 extended partition. PARTITION_HUGE Specifies an MS-DOS V4 huge partition. PARTITION_IFS Specifies an IFS partition. NTFS PARTITION_FAT32 Specifies a FAT32 partition. PARTITION_FAT32_XINT13 Windows 95/98: Specifies a partition that uses extended INT 13 services. PARTITION_XINT13_EXTENDED Windows 95/98: Same as PARTITION_EXTENDED, but uses extended INT 13 services. PARTITION_PREP Specifies a PowerPC Reference Platform partition. PARTITION_LDM Specifies a logical disk manager partition. PARTITION_UNIX Specifies a UNIX partition. PARTITION_NTFT Specifies an NTFT partition. This value is used in combination (that is, bitwise logically ORed) with the other values in this table. Home Index ",12);arrFiles[55]=new Array(56,"blog/fopenfopens.html","19 Mar 2009","How to write lines of unicode text in a file using fwprintf in Microsoft deprecated and secure way","","","How to write lines of unicode text in a file using fwprintf in Microsoft deprecated and secure way Home Index // Create a simple console application and paste the following code // fopen.cpp : Defines the entry point for the console application. #include stdafx.h #include &lt;windows.h&gt; int _tmain(int argc, _TCHAR* argv[]) { // The MICROSOFT Deprecated version _TCHAR * realword= LHello from heaven; DeleteFile(Lc: \\ \\result.txt); FILE * fileHandle = _wfopen( Lc: \\ \\result.txt,La+t,ccs=UNICODE); fwprintf(fileHandle,L%s \\n,realword); fwprintf(fileHandle,L%s \\n,realword); fwprintf(fileHandle,L%s \\n,realword); fwprintf(fileHandle,L%s \\n,realword); fclose(fileHandle); // The Secure MICROSOFT VERSION DeleteFile(Lc: \\ \\resultSecure.txt); FILE * fileHandleSecure; errno_t err; // If we can open the file.... if((err = _wfopen_s(&amp;fileHandleSecure, Lc: \\ \\resultSecure.txt,La+t,ccs=UNICODE))== 0 ) { fwprintf(fileHandleSecure,L%s \\n,realword); fwprintf(fileHandleSecure,L%s \\n,realword); fwprintf(fileHandleSecure,L%s \\n,realword); fwprintf(fileHandleSecure,L%s \\n,realword); fclose(fileHandleSecure); } return 0; } Home Index ",4);arrFiles[56]=new Array(57,"blog/dlldeftutorial.html","16 Mar 2009","The problem of DLL and Def File with LoadLibrary","","","DEEP C++ DLL CREATION: USE of Definition files and LoadLibrary Download Sample Home Index This  tutorial is intended to clarify once for all the procedure that must be followed in order to link a Dynamic Link Library to a process in order to exploit its functions from within the calling application. SCENARIOS a typical situation shows up when a C++ application ( managed or unmanaged) requires   certain functions that are inside a DLL. Truly there are cases in which using an external linkage is the best solution, and among them it could be cited the necessity not to mix different libraries in one single application (for example COM and MFC). This document will focus on a specific example which given its general application is ideal for didactic purposes. STEP 1: BUILDING THE UNMANAGED CLASS LIBRARY WITH MFC AND ATL SUPPORT we will use Visual Studio 2008 Sp1 during the course of this tutorial. We open VS2008 and we create a new project of type Win32 Console Application. We decide to create a desktop folder named Core and inside it we create our project which name is “core” We choose as follows in order to create a DLL with MFC and ATL support. In solution explorer we can see the following situation We right click on engine and we choose properties. We set the following for our DLL: We add now a definition File right clicking on the engine project and selecting Add new item. Again the situation in Solution Explorer is the following: The .def file is a container for the name of the functions we’ll develop in this DLL and presumably export in other calling environments. Let’s have a look at this file and the list of exportable functions. We have added three functions with a special syntax and we know doing so that the three functions are marked as exportable (The above syntax must be strictly followed). The ordinal number maps the name of the function in order to be recognized during the export. Obviously we haven’t yet added our three methods to the project, and then if we try to compile the project we obtain at least three error LNK2001: unresolved external. We are now ready to add the tree methods to our project. We add three very simple methods because of simplicity. Before proceeding further we take a look at the file engine.h  which presents itself like this: We can see that The Cengine class is marked as exportable Thanks to the ENGINE_API  define. We will get back to this later, but before we want to add our methods, and we add them in engine cpp as follows: That’s it, now we can compile and build engine.dll which will be used later in the test program. STEP 2: BUILDING A TEST PROGRAM In order to test our DLL we can add another project to our solution, let’s say  a simple console application and perform the test. We choose the following settings In Solution Explorer the situation is now like this We open the Test.cpp and we inspect the content. At this point we change its content in // Test.cpp : Defines the entry point for the console application. #include stdafx.h #include &lt;windows.h&gt; int _tmain(int argc, _TCHAR* argv[]) {   typedef int (__cdecl *MYPROC)(int); HINSTANCE hinstLib; MYPROC ProcAdd; BOOL fFreeResult, fRunTimeLinkSuccess = FALSE; // Get a handle to the DLL module. hinstLib = LoadLibrary(TEXT(engine.dll)); // If the handle is valid, try to get the function address. if (hinstLib != NULL) { ProcAdd = (MYPROC) GetProcAddress(hinstLib, GetValueData); // If the function address is valid, call the function. if (NULL != ProcAdd) { fRunTimeLinkSuccess = TRUE; int ret =  (ProcAdd) (100); int control =0; } // Free the DLL module. fFreeResult = FreeLibrary(hinstLib); } return 0; } Now if we run our Test program we can see how to call the newly created DLL (which must reside within reach in the same folder of the test program or in the windows \\System32 folder). The most important lines of the test program shown above are the following: typedef int (__cdecl *MYPROC)(int); ……….. ProcAdd = (MYPROC) GetProcAddress(hinstLib, GetValueData); ……….. int ret =  (ProcAdd) (100); The first line establishes the signature of the function pointer that must coincide with the signature of the exported function in the DLL. The second line acquires the readiness of the exported function through the function pointer ProcAdd. The third line call the function and memorize its return value in ret;  obviously such value is = 1 CASE STUDY we continue now adding a little more complexity in defining the functions and its signature and we see how to call them from the client side. The first example is related to a function in our DLL that returns an opaque pointer after being feed with three parameters, one of which is a ref parameter. SERVER SIDE: void * GetAudioPause(LPCWSTR type, int lenw, int &amp;size) { if(lenw &gt; 10) { BYTE * alfa = new BYTE[4000]; memset(alfa,0,4000); size = 4000; return  (void*)alfa ; } else return NULL; } As we see this function in our DLL returns an opaque pointer, and it needs three parameters; The first is a pointer to Unicode string, the second  is an integer that is used for some control and the third is an integer passed by reference, which will be used in the calling environment. CLIENT SIDE: The signature of the function pointer  is the following typedef void *  (__cdecl *MYPROC)(LPCWSTR, int, int&amp;); The Function Pointer readiness ProcAdd = (MYPROC) GetProcAddress(hinstLib, GetAudioWord); The call from client BYTE * sample=NULL; int sizeaudio=0; sample  = (BYTE*) ((ProcAdd)(Item.pItem,wcslen(Item.pItem),sizeaudio));     When the call completes the sizeaudio variable can be either 0 or 4000 depending on the value of wcslen(Item.pItem). CONCLUSIONS We have shown here a straight way of calling DLL and make them being mapped into the address space of the calling process. Home Index Download Sample ",13);arrFiles[57]=new Array(58,"blog/casting.html","20 Mar 2009","Casting in C/C++","","","Home Index Casting in C/C++ In C/C++, casting is a powerful feature and can be utilized in several different important situations. There are four kinds of cast operators. static cast Conventional casting of one type to another, where there is some meaning to what the cast will do. (Thus, normally you can \'t cast from a Foo to a Bar , unless there \'s a definition for how to do this). dynamic cast Meant for downcasting from a base class to a derived class. This check is done at runtime (as opposed to static casting which can generate the necessary code to do the casting at compile time). const cast To temporarily remove constness from a const variable. Mostly used to get rid of warnings about violating constness. reinterpret cast To allow you to cast one pointer type to another pointer type to another. We \'ll see them all static_cast and reinterpret_cast . More about static_cast The main kind of static casting we \'re interested in falls into two categories: Casting from one primitive type to another (e.g., char to int , float to int ). Casting from a shorter type to a longer type or vice versa (e.g., short to int , long to int ). Casting from one type to another is interesting, particularly, casting float to int . Like the unary minus, the casting operation does NOT change the value of the variable it is casting. Instead, like unary minus, it creates a temporary value which is the casted result. For example, consider float f = 3.0 ; int val = static_cast&lt;int&gt;( f ) ; The static cast of f to an int does not change the value of f . Instead, it creates a temporary int . Casting float to int causes bits to change (from the original value to the temporary casted value). Recall that float are represented in IEEE 754 single precision while int is 2C. Those are different representations. The semantics of casting float to int causes the value to get truncated (thus, 3.9 is truncated to 3.0), but it also changes representation. The semantics of casting int to value causes the value to convert to float (thus, 3 is converted to 3.0), which also changes representation. We look at this kind of casting, precisely because it makes you think about the internal data representation. 3 and 3.0 look very close when you write it in a program. However, internally, (once stored in a running program) they \'re represented quite differently. Casting different sizes Sometimes you need to cast from a shorter type to a longer type or vice versa. For example, you may need to cast from short int to an int . These may be the same sizes, depending on the compiler, but for now, let \'s assume they are different sizes. If you go from a smaller size to a larger size, at least for an int , it sign extends. It zero-extends if it \'s an unsigned int . This preserves the value as you increase the number of bytes. If you go from a larger size to a smaller size (in both int and unsigned int ) it chops off the uppermost bytes. This can cause the number to change its value) so beware of this potential change. Even though the representation isn \'t as dramatic as float to int , it still occurs. More about reinterpret_cast In C, it turns out to be useful to convert from one pointer type to another, especially if you \'re working on systems programming (operating systems, for example). Since all pointers are addresses, and all addresses have the same number of bytes (at least, on a given ISA), the casting does not convert any bits. C++ decided to call this pointer-to-pointer casting, reinterpret_cast . What \'s being reinterpreted is the meaning of the bytes. Let \'s look at an example: // create a Foo pointer Obj * fooPtr = new Obj( 2, 3 ) ; // perform the casting Bar * barPtr = reinterpret_cast&lt;Bar *&gt;( fooPtr ) ; We had a Obj * pointer, which is some address in memory, that stores some number of bytes of a Obj object. When reinterpeting that pointer to a Bar * pointer, those bytes of the Foo object are unchanged . If you dereference barPtr , (to dereference the pointer q we write *q) the runtime system will consider the bytes stored at the addreess of barPtr (which is the same as the address of fooPtr ) to be a Bar object. If you \'re thinking there \'s no way that those bytes, which are currently meaningful for a Obj object, could also be meaningful for a Bar object, then you \'re right. More likely than not, barPtr points to a Bar object with garbage bytes. Worse, if Bar is sufficiently larger than Obj, then you access invalid memory when reading data members of Bar (because they may fall outside the valid range of memory used for the Obj object). You may think that it \'s completely useless to reinterpret cast. For the most part, it is useless. However, the most common use of reinterpret cast is to look at the individual bytes of some structure. For example, suppose you \'re interested in finding out what the individual bytes of a long int look like (you can pick any type instead of long int ). long val = 0x01234567; char * charPtr = reinterpret_cast&lt;char *&gt;( &amp; val ) ; for ( int i = 0 ; i &lt; sizeof( long ) ; i++ ) { cout &lt;&lt; byteToHex( *charPtr ) &lt;&lt; endl ; charPtr ++ ; } This puts a pointer at the beginning of val and prints out the bytes of val in hex format (assume byteToHex() returns a string that represents the hex value of the char passed as argument). Why would you do this? Functions like read() and write() (which are part of the istream and ostream methods), often take a char * pointer, which is used as an address of any object/data type, and the prints out or reads in the contents of some object byte by byte. Again, it \'s useful to think of char as a byte type, in this case, instead of thinking of it as a character, just like it \'s useful to think of char * as an address in memory of some object, rather than an address of a character. Accessing the individual bytes can be useful when sending structures across a network, or when saving a structure to a file. The only problem with this sending objects or structures in this is potential incompatibility with the host machine (which sends the data) and the remote machine (which receives the data). If you send out an arbitrary object byte-by-byte over the network, the remote machine that receives this data must represent the object in exactly the same way that the host machine represents it (the same endianness, same order of data members, etc). If the remote machine has a different representation, it may be worth encoding the structure of the object using some convention both sides agree on (say, XML). This will, more than likely, take more space and more processing, but should be more compatible for a wider variety of machines. In any case, coming up with a representation makes you think of a representation rather than assuming any object sent over the network will automatically be put together properly on the other end. Another reason for using reinterpret cast is to allow you to edit individual bytes in memory by using bitwise/bitshift operators. This may seem like a very odd reason, but if you \'re writing linkers or loaders, it may be necessary to edit the instructions (this is called binary rewriting ) as you link or load. Converting float to int while preserving bits Casting from float to int or vice-versa causes the representation of the casted result to change from the original representation. Suppose a float and int both have 4 bytes. You \'ve written a number in float but want to know its corresponding int value. That is, in both cases, the bits are exactly the same, but it has one meaning, if you think of those bits as a float and another meaning if you think of those bits as an int . How do you convert between the two types without changing the bits (which occurs when you static cast)? The answer? Reinterpret cast. Of course, reinterpret cast works with pointers, so we \'ll need pointers. The code is amazingly short: float val = 3.0 ; int num = * reinterpret_cast&lt;int *&gt;( &amp; val ) ; In this code, we create a pointer to val using the &amp; operator. This is reinterpreted as a int * pointer. Recall that reinterpreting pointers does not change the bytes in memory. Then, you dereference it to get the int . Of course, this code assumes that float and int have the same number of bytes. On most machines/compilers, this is true, but it \'s possible that the sizes may be different. Languages like Java avoid this problem by mandating the sizes of various types. Languages like C/C++ leave the number of bytes of each type up to the compiler writer. The assumption is, for C/C++, that the compiler writer will pick the size that \'s the most natural for the CPU it runs on (thus, on old PCs, int was 2 bytes, and on recent PCs, they are 4 bytes). Summary The reason we look at static casting is to note that casting often causes a change of representation. Either the representation can completely change (say, from 2C to IEEE 754), or it changes in the number of bytes (say, from int to long). The bits change when casting is performed. On the other hand, when you reinterpret cast (which is casting from one pointer type to another) the bits do not change. That \'s because all pointers on a given machine have the same number of bytes (usually 4 or 8 bytes for a 32 bit and 64 bit machine, respectively). Reinterpret casting preserves the address. The difference is when you dereference the pointer. Suppose the new pointer type requires N bytes of memory. The runtime system will use the N bytes at the address, and consider those bytes as the object. Usually, this will cause you to have a nonsense object. Thus, the most common use of reinterpret casting is to cast to a char * where you can then look at the individual bytes of an object (since char holds one byte), possibly so you can save it to a file or send the bytes over a network. Occasionally, you can edit bytes by casting to a char * (and dereferencing). Home Index ",21);arrFiles[58]=new Array(59,"blog/bufferinflatedeflate.html","7 Apr 2009","Deep C++ Buffer Inflate and deflate routines","","","Buffer Inflate and deflate technique Home Index // we must enlarge the file by an amount in bytes equal to delta= (newbuffer - bufferbefore) int delta = newbuffer-bufferbefore; byte * increase = new byte[delta]; memset(increase,0,delta); byte * m_buffer = new byte [newbuffer]; // this is our real buffer that must be inserted at startaddress memset(m_buffer,0,newbuffer); we fill with zeros, but in real case this is our new buffer with real data LPCWSTR FileNameU =Lc: \\ \\sample.vce; // This is the file tat contain the data HANDLE HN = CreateFile(FileNameU,GENERIC_ALL ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); DWORD dwPos = SetFilePointer(HN, 0, NULL, FILE_END); //FILE_BEGIN ; FILE_CURRENT; FILE_END DWORD m_written;// the reference of bytes written WriteFile(HN,half, increase, &amp;m_written, NULL); // we write increase at the end of file to make room for the new buffer // we proceed now to map the file in memory. HANDLE HP = CreateFileMapping(HN,NULL,PAGE_READWRITE,0,0,NULL); HANDLE HX =MapViewOfFile(HP,FILE_MAP_ALL_ACCESS,0,0,0); unsigned char * pt = (unsigned char *)HX; // This is the pointer that maps all the file content, we can use it as if it were memory memcpy_s(&amp;pt[startaddress + newbuffer], lenfile + delta, &amp;pt[startaddress+bufferbefore],oldsize-bufferbefore-startaddress); memcpy_s(&amp;pt[startaddress],newsize,m_buffer,newbuffer); //Using the safe version of memmove brings the same result (maybe formally more corrected): memove_s(&amp;pt[startaddress + newbuffer], lenfile + delta, &amp;pt[startaddress+bufferbefore],oldsize-bufferbefore-startaddress); memcpy_s(&amp;pt[startaddress],newsize,m_buffer,newbuffer); ***************************************************************************************************** FILE *fp =0; char * bufByte=0; short * bufShort=0; long lenBuffer=0; fp= fopen(c: \\ \\sample.vce, rb); // using binary mode plus read/write mode int ret= fseek(fp, 0, SEEK_END); // I move the file pointer to the end of file so I can read its length int lenfile=ftell(fp); // here I read the file length fclose(fp); int startaddress = 10000; int bufferbefore = 1000; int newbuffer = 500; unsigned char * m_buffer = new unsigned char[newbuffer]; int oldsize=lenfile; int delta = newbuffer-bufferbefore; int newsize = oldsize + delta; LPCWSTR FileNameU =Lc: \\ \\sample.vce; HANDLE HN = CreateFile(FileNameU,GENERIC_ALL ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); HANDLE HP = CreateFileMapping(HN,NULL,PAGE_READWRITE,0,0,NULL); HANDLE HX =MapViewOfFile(HP,FILE_MAP_ALL_ACCESS,0,0,0); unsigned char * pt = (unsigned char *)HX; // We cast to byte type char a = pt[startaddress+bufferbefore+77]; // a test to see if the data are equals memcpy_s(&amp;pt[startaddress+newbuffer],newsize,&amp;pt[startaddress+bufferbefore],oldsize-startaddress-bufferbefore); memcpy_s(&amp;pt[startaddress],oldsize,m_buffer,newbuffer); char b = pt[startaddress+newbuffer+77]; // a test to see if the data are equals ( a must be equal to b ) // now we can truncate the file to the new size // first we close the mapping ( Microsoft recommendation before moving the end of file UnmapViewOfFile(HX); CloseHandle(HP); DWORD dwPos = SetFilePointer(HN, delta, NULL, FILE_END); SetEndOfFile(HN); CloseHandle(HN); Home Index ",6);arrFiles[59]=new Array(60,"blog/splitstring.html","23 Mar 2009","The C++ Native SplitString function ASCII and Unicode","","","Home Index Deep C++. Native Split String Functions Splitting a string given a specific separator is well implemented in Microsoft.Net framework; unfortunately there \'s no such function in a native environment. This piece of code provide a streight implementation of a split function either in ASCI and Unicode stile. Download sample Solution //*******************FUNCTIONS IMPLEMENTATION ***************************** //********************************************************************** // A S C I I Version ********************************************************* char ** SplitString(char * StringToSplit, char * seps , int &amp;m_rowsize) // It returns also a reference to the memory //to deallocate { // We must preserve the value of StringToSplit so we need to copy its content into 2 temp vars char * temporary = new char[strlen(StringToSplit)+sizeof(char)]; // We make a copy of our string to split strcpy_s(temporary,strlen(StringToSplit)+ sizeof(char),StringToSplit); char * temporary1 = new char[strlen(StringToSplit)+sizeof(char)]; // We make a copy of our string to split strcpy_s(temporary1,strlen(StringToSplit)+ sizeof(char),StringToSplit); // now we define the other needed vars char * token1, * next_token1; //Phase 1 calculating the size of the destination array int n = 1; int m=0; int temp = 0; token1 = strtok_s(temporary, seps, &amp;next_token1); m = strlen(token1) + sizeof(char); while (true) { token1 = strtok_s( NULL, seps, &amp;next_token1); if(token1) { n++; temp=strlen(token1)+sizeof(char); if(temp &gt; m) m = temp; } else {break;} } // Now we have the size of our array, we can proceed to dimensioning it // first of all we recover the content of string1 char ** first=NULL; first = new char *[n]; for(int q = 0; q &lt; n; q++) { first[q] = new char[m]; } // we have all the information on memory size, now it \'s time di fill the string array with our // splitted data. token1 = strtok_s(temporary1, seps, &amp;next_token1); strcpy_s(first[0],strlen(token1)+sizeof(char),token1); int c = 1; while (true) { token1 = strtok_s( NULL, seps, &amp;next_token1); if(token1) { strcpy_s(first[c],strlen(token1)+sizeof(char),token1); c++; } else {break;} } delete temporary; delete temporary1; m_rowsize=n; return first; } // **************DEALLOCATION******************************************** void FreeSplittedArrayA( char ** m_splitted, int m_infomemory) { for( int i = 0 ; i &lt; m_infomemory ; i++ ) { delete m_splitted[i] ; } delete [] m_splitted ; } // U N I C O D E ********************************************************************* wchar_t ** SplitStringW(wchar_t * StringToSplit, wchar_t * seps , int &amp;m_rowsize) // It returns also a reference to // the memory to deallocate { // We must preserve the value of StringToSplit so we need to copy its content into 2 temp vars wchar_t * temporary = new wchar_t[wcslen(StringToSplit)+sizeof(wchar_t)]; // We make a copy of our string to //split wcscpy_s(temporary,wcslen(StringToSplit)+ sizeof(char),StringToSplit); wchar_t * temporary1 = new wchar_t[wcslen(StringToSplit)+sizeof(wchar_t)]; // We make a copy of our string to //split wcscpy_s(temporary1,wcslen(StringToSplit)+ sizeof(wchar_t),StringToSplit); // now we define the other needed vars wchar_t * token1, * next_token1; //Phase 1 calculating the size of the destination array int n = 1; int m=0; int temp = 0; token1 = wcstok_s(temporary, seps, &amp;next_token1); m = wcslen(token1) + sizeof(wchar_t); while (true) { token1 = wcstok_s( NULL, seps, &amp;next_token1); if(token1) { n++; temp=wcslen(token1)+sizeof(wchar_t); if(temp &gt; m) m = temp; } else {break;} } // Now we have the size of our array, we can proceed to dimensioning it // first of all we recover the content of string1 wchar_t ** first=NULL; first = new wchar_t *[n]; for(int q = 0; q &lt; n; q++) { first[q] = new wchar_t[m]; } // we have all the information on memory size, now it \'s time di fill the string array with our // splitted data. token1 = wcstok_s(temporary1, seps, &amp;next_token1); wcscpy_s(first[0],wcslen(token1)+sizeof(wchar_t),token1); int c = 1; while (true) { token1 = wcstok_s( NULL, seps, &amp;next_token1); if(token1) { wcscpy_s(first[c],wcslen(token1)+sizeof(wchar_t),token1); c++; } else {break;} } delete temporary; delete temporary1; m_rowsize=n; return first; } // ***************************DEALLOCATION************************** void FreeSplittedArrayW( wchar_t ** m_splitted, int m_infomemory) { for( int i = 0 ; i &lt; m_infomemory ; i++ ) { delete m_splitted[i] ; } delete [] m_splitted ; } Home Index ",14);arrFiles[60]=new Array(61,"blog/skeletonwin32service.html","7 Jan 2010","A win32 unmanaged service That Sends email using CDO","","","Win32 unmanaged Service Home Index Having a good sample of a win32 service is important in order to know exactly how to build it. The basic schema is reported below through a sample that sends an email message using a specific smtp server. Download sample Solution // SkeletonService.cpp : // This Project is a skeleton for a win32 Windows Service which can be compiled also // allowing managed code execution. Despite the fact that .NET framework provides // Windows Services Template for managed windows services, it is absent a template for // Unmanaged code with the opportunity to add managed features. The scope of this // Template is to allow usage of either technologies. #pragma once #include &lt;windows.h&gt; #include &lt;tchar.h&gt; //#include &lt;strsafe.h&gt; // Feel free to modify the following thre lines of code in order to personalize the Service name //************************************************************************************ //************************************************************************************ #define SVCNAME TEXT(The DESKTOP Informer) // The name of the service #define SVCDISPNAME TEXT(DESKTOP Informer Compiled Unmanaged) // The name displayed of the service #define SVCDESCRIPTION TEXT(DESKTOP Information Description) // The service description //************************************************************************************** /*Remarks: In order to install this service it is sufficient to go to the application directory and type SkeletonService install auto and the service will be installed to remove it type SkeletonService remove as an automatic service that means that the service will start at system startup (logon)*/ //************************************************************************************** #define SVC_ERROR 11 SERVICE_STATUS gSvcStatus; SERVICE_STATUS_HANDLE gSvcStatusHandle; HANDLE ghSvcStopEvent = NULL; DWORD dwThreadId; HANDLE hThread; static DWORD dwStartType; // To set the start type to automatic or manual VOID SvcInstall(void); bool SvcRemove(void); VOID UpdateSvcDesc(LPWSTR szDesc); DWORD WINAPI ServiceCode(LPVOID lpParam); VOID WINAPI SvcCtrlHandler( DWORD ); VOID WINAPI SvcMain( DWORD, LPTSTR * ); VOID ReportSvcStatus( DWORD, DWORD, DWORD ); VOID SvcInit( DWORD, LPTSTR * ); VOID SvcReportEvent( LPTSTR ); #import C: \\Program Files \\Common Files \\System \\ado \\msado15.dll no_namespace rename(EOF, EndOfFile) #import &lt;cdosys.dll&gt; no_namespace // COM Aid for smtp email features #include stdafx.h // using namespace System; NET or not NET: if yes compile with Common Language Runtime Support (/clr) // Stage 1 Purpose: //Entry point for the process //Parameters: None Return value: None int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]) { // If command-line parameter is install, install the service. // Otherwise, the service is probably being started by the SCM. if( lstrcmpi( argv[1], TEXT(install)) == 0 ) { dwStartType=lstrcmpi( argv[2], TEXT(auto)) == 0 ? SERVICE_AUTO_START: lstrcmpi(argv[2], TEXT(manual)) == 0 ? SERVICE_DEMAND_START :SERVICE_DISABLED; SvcInstall(); return 0; } if( lstrcmpi( argv[1], TEXT(remove)) == 0 ) { bool ret= SvcRemove(); return 0; } // TO_DO: Add any additional services for the process to this table. SERVICE_TABLE_ENTRY DispatchTable[] = { { SVCNAME, (LPSERVICE_MAIN_FUNCTION) SvcMain }, { NULL, NULL } }; // This call returns when the service has stopped. // The process should simply terminate when the call returns. if (!StartServiceCtrlDispatcher( DispatchTable )) { SvcReportEvent(TEXT(StartServiceCtrlDispatcher)); } return 0; } // Stage 2 Purpose: Installs a service in the SCM database // Parameters: None Return value: None VOID SvcInstall() { SC_HANDLE schSCManager; SC_HANDLE schService; TCHAR szPath[MAX_PATH]; if( !GetModuleFileName( NULL, szPath, MAX_PATH ) ) { printf(Cannot install service (%d) \\n, GetLastError()); return; } // Get a handle to the SCM database. schSCManager = OpenSCManager( NULL, // local computer NULL, // ServicesActive database SC_MANAGER_ALL_ACCESS); // full access rights if (NULL == schSCManager) { printf(OpenSCManager failed (%d) \\n, GetLastError()); return; } // Create the service schService = CreateService( schSCManager, // SCM database SVCNAME, // name of service SVCDISPNAME, // service name to display SERVICE_ALL_ACCESS, // desired access SERVICE_WIN32_OWN_PROCESS, // service type dwStartType, // start type SERVICE_ERROR_NORMAL, // error control type szPath, // path to service \'s binary NULL, // no load ordering group NULL, // no tag identifier NULL, // no dependencies NULL, // LocalSystem account NULL); // no password if (schService == NULL) { printf(CreateService failed (%d) \\n, GetLastError()); CloseServiceHandle(schSCManager); return; } else { // As the description is empty we have to set the service description soon after //the service creation UpdateSvcDesc(SVCDESCRIPTION); printf(Service installed successfully \\n); } CloseServiceHandle(schService); CloseServiceHandle(schSCManager); } // Stage 3 Purpose: Create a description for the given service because at creation time no // Description exists Parameters: String of service description Return value: None VOID UpdateSvcDesc(LPWSTR szDesc) { SC_HANDLE schSCManager; SC_HANDLE schService; SERVICE_DESCRIPTION sd; // Get a handle to the SCM database. schSCManager = OpenSCManager( NULL, // local computer NULL, // ServicesActive database SC_MANAGER_ALL_ACCESS); // full access rights if (NULL == schSCManager) { printf(OpenSCManager failed (%d) \\n, GetLastError()); return; } // Get a handle to the service. schService = OpenService( schSCManager, // SCM database SVCNAME, // name of service SERVICE_CHANGE_CONFIG); // need change config access if (schService == NULL) { printf(OpenService failed (%d) \\n, GetLastError()); CloseServiceHandle(schSCManager); return; } // Change the service description. sd.lpDescription = szDesc; if( !ChangeServiceConfig2( schService, // handle to service SERVICE_CONFIG_DESCRIPTION, // change: description &amp;sd) ) // new description { printf(ChangeServiceConfig2 failed \\n); } else printf(Service description updated successfully. \\n); CloseServiceHandle(schService); CloseServiceHandle(schSCManager); } // Stage 4 Service removal. Parameters: None Return value: None bool SvcRemove() { SC_HANDLE schService; SC_HANDLE schSCManager; bool fnc_ret = false; SERVICE_STATUS m_Status; // current status of the service schSCManager = OpenSCManager( NULL, // machine (NULL == local) NULL, // database (NULL == default) SC_MANAGER_ALL_ACCESS // access required ); if (schSCManager) { schService = OpenService(schSCManager, SVCNAME, SERVICE_ALL_ACCESS); if (schService) { // try to stop the service if (ControlService(schService, SERVICE_CONTROL_STOP, &amp;m_Status)) { printf(Stopping %s., SVCDISPNAME ); Sleep(1000); while(QueryServiceStatus(schService, &amp;m_Status)) { if (m_Status.dwCurrentState == SERVICE_STOP_PENDING) { printf(.); Sleep(1000); } else { break; } } if (m_Status.dwCurrentState == SERVICE_STOPPED) { printf( \\n%s stopped. \\n, SVCDISPNAME); //SVCDISPNAME } else { printf( \\n%s failed to stop. \\n, SVCDISPNAME); } } // now remove the service if (DeleteService(schService)){ printf(The service has been successfully removed. \\n); fnc_ret = true; } else { printf(DeleteService failed - %s \\n, ); //GetLastErrorText(szErr,256)); } CloseServiceHandle(schService); } else { printf(OpenService failed - %s \\n, ); //GetLastErrorText(szErr,256)); } CloseServiceHandle(schSCManager); } else { printf(OpenSCManager failed - %s \\n, ); //GetLastErrorText(szErr,256)); } return (fnc_ret); } /*Writing a ServiceMain Function The following SvcMain function is the ServiceMain function for the Skeleton service. SvcMain has access to the command-line arguments for the service in the way that the main function of a console application does. The first parameter contains the number of arguments being passed to the service in the second parameter. There will always be at least one argument. The second parameter is a pointer to an array of string pointers. The first item in the array is always the service name. The SvcMain function first calls the RegisterServiceCtrlHandler function to register the SvcCtrlHandler function as the service \'s Handler function and begin initialization. RegisterServiceCtrlHandler should be the first nonfailing function in ServiceMain so the service can use the status handle returned by this function to call SetServiceStatus with the SERVICE_STOPPED state if an error occurs. Next, the SvcMain function calls the ReportSvcStatus function to indicate that its initial status is SERVICE_START_PENDING. While the service is in this state, no controls are accepted. To simplify the logic of the service, it is recommended that the service not accept any controls while it is performing its initialization. Finally, the SvcMain function calls the SvcInit function to perform the service-specific initialization and begin the work to be performed by the service. The sample initialization function, SvcInit, is a very simple example; it does not perform more complex initialization tasks such as creating additional threads. It creates an event that the service control handler can signal to indicate that the service should stop, then calls ReportSvcStatus to indicate that the service has entered the SERVICE_RUNNING state. At this point, the service has completed its initialization and is ready to accept controls. For best system performance, your application should enter the running state within 25-100 milliseconds. Because this sample service does not complete any real tasks, SvcInit simply waits for the service stop event to be signaled by calling the WaitForSingleObject function, calls ReportSvcStatus to indicate that the service has entered the SERVICE_STOPPED state, and returns. (Note that it is important for the function to return, rather than call the ExitThread function, because returning allows for cleanup of the memory allocated for the arguments.) You can perform additional cleanup tasks by using the RegisterWaitForSingleObject function instead of WaitForSingleObject. The thread that is running the ServiceMain function terminates, but the service itself continues to run. When the service control handler signals the event, a thread from the thread pool executes your callback to perform the additional cleanup, including setting the status to SERVICE_STOPPED. Note that this example uses SvcReportEvent to write error events to the event log.*/ // Stage 5 Purpose: Entry point for the core code service // Parameters: dwArgc - Number of arguments in the lpszArgv array // lpszArgv - Array of strings. The first string is the name of // the service and subsequent strings are passed by the process // that called the StartService function to start the service. // Return value: None. // VOID WINAPI SvcMain( DWORD dwArgc, LPTSTR *lpszArgv ) { // Register the handler function for the service gSvcStatusHandle = RegisterServiceCtrlHandler( SVCNAME, SvcCtrlHandler); if( !gSvcStatusHandle ) { SvcReportEvent(TEXT(RegisterServiceCtrlHandler)); return; } // These SERVICE_STATUS members remain as set here gSvcStatus.dwServiceType = SERVICE_WIN32_OWN_PROCESS; gSvcStatus.dwServiceSpecificExitCode = 0; // Report initial status to the SCM ReportSvcStatus( SERVICE_START_PENDING, NO_ERROR, 3000 ); // Perform service-specific initialization and work. SvcInit( dwArgc, lpszArgv ); } // Stage 6 Purpose: The service code Parameters: // dwArgc - Number of arguments in the lpszArgv array // lpszArgv - Array of strings. The first string is the name of // the service and subsequent strings are passed by the process // that called the StartService function to start the service. // Return value: None // Remarks: Here the service code is monitored by the ghSvcStopEvent event handler VOID SvcInit( DWORD dwArgc, LPTSTR *lpszArgv) { // TO_DO: Declare and set any required variables. // Be sure to periodically call ReportSvcStatus() with // SERVICE_START_PENDING. If initialization fails, call // ReportSvcStatus with SERVICE_STOPPED. // Create an event. The control handler function, SvcCtrlHandler, // signals this event when it receives the stop control code. ghSvcStopEvent = CreateEvent( NULL, // default security attributes TRUE, // manual reset event FALSE, // not signaled NULL); // no name if ( ghSvcStopEvent == NULL) { ReportSvcStatus( SERVICE_STOPPED, NO_ERROR, 0 ); return; } // Report running status when initialization is complete. ReportSvcStatus( SERVICE_RUNNING, NO_ERROR, 0 ); //********************************************************************************************************* // TO_DO: Perform work until service stops. // The Service code must reside in a separate thread so that it is possible to perform the stop control // either hThread or dwThreadId becomes inspectable as they are global vars hThread = CreateThread(NULL,NULL,ServiceCode,(LPVOID)lpszArgv,0,&amp;dwThreadId); // CORE CODE OF THE SERVICE //********************************************************************************************************* while(1) { // Check whether to stop the service. WaitForSingleObject(ghSvcStopEvent, INFINITE); ReportSvcStatus( SERVICE_STOPPED, NO_ERROR, 0 ); return; } } //********************************THE CORE CODE OF THE SERVICE ************************************************************************* //********************************************************************************************************* DWORD WINAPI ServiceCode(LPVOID lpParam) // The core code Of this service sends an email message every hour { LPSTR m_commandLine=(LPSTR)lpParam; bool bReturn = true; while(true) { // Remember CoInitializeEx always between brackets and prefer it to the simple CoInitialize CoInitializeEx(NULL,COINIT_MULTITHREADED|COINIT_SPEED_OVER_MEMORY); // Initialization in multithreading // Warning : the COINIT_SPEED_OVER_MEMORY flag is used to improve performance providing a good amount of memory //CoInitialize creates a single-threaded apartment (STA), whereas CoInitializeEx with the // COINIT_MULTITHREADED flag produces a multi-threaded apartment. //The CoInitialize/CoInitializeEx call does not initialize the COM library globally, //only the calling thread \'s use of it, so it \'s important to remember that this initialization //should be done on a per-thread basis. This is typically done early in a thread \'s work function (ThreadProc). { try { IMessagePtr iMsg(__uuidof(Message)); IConfigurationPtr iConf(__uuidof(Configuration));//iConf.CreateInstance(__uuidof(Configuration)); iConf = iMsg-&gt;Configuration; FieldsPtr Flds = iConf-&gt;GetFields(); Flds-&gt;Item[cdoSMTPServer]-&gt;Value = _variant_t(SMTP.MYEMAILSERVER.IT); // If we want to change the server name to a remote server Flds-&gt;Item[cdoSMTPServerPort]-&gt;Value=(_variant_t((long)25)); // The port name of the SMTP Server Flds-&gt;Item[cdoImportance]-&gt;Value=cdoHigh; /* cdoPriorityNonUrgent -1 Nonurgent priority cdoPriorityNormal 0 Normal priority cdoPriorityUrgent 1 Urgent priority cdoLow 0 Low importance cdoNormal 1 Normal importance cdoHigh 2 High importance */ //Flds-&gt;Item[cdoSendUsingMethod]-&gt;Value = _variant_t(cdoSendUsingPort); //Flds-&gt;Item[cdoSMTPConnectionTimeout]-&gt;Value = _variant_t((long)10); Flds-&gt;Item[cdoSMTPAuthenticate]-&gt;Value = _variant_t(cdoBasic); //Flds-&gt;Item[cdoSendUserName]-&gt;Value = _variant_t(myusername); //Flds-&gt;Item[cdoSendPassword]-&gt;Value = _variant_t(mypassword); //Flds-&gt;Item[cdoURLProxyServer]-&gt;Value = _variant_t(server:80); //Flds-&gt;Item[cdoURLProxyBypass]-&gt;Value = _variant_t(); //Flds-&gt;Item[cdoURLGetLatestVersion]-&gt;Value = _variant_t(VARIANT_TRUE); Flds-&gt;Update(); iMsg-&gt;From = TheSender@dmm.it; // The following add two attachments /*iMsg-&gt;AddAttachment(C: \\ \\Documents and Settings \\ \\Diego \\ \\Desktop \\ \\SkeletonService \\ \\Debug \\ \\Myfile.dwg,,); iMsg-&gt;AddAttachment(C: \\ \\Documents and Settings \\ \\Diego \\ \\Desktop \\ \\SkeletonService \\ \\Debug \\ \\Myfile.dwg,,);*/ // Simulate three addresses with semicolon //iMsg-&gt;To = destaddress@mydomine.com; iMsg-&gt;To = destaddress@mydomine.com;; iMsg-&gt;Subject = Automated mail; iMsg-&gt;TextBody = Everything is okay here; iMsg-&gt;Send(); // The following code snippet launch a process ************************** /* STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory( &amp;si, sizeof(si) ); si.cb = sizeof(si); si.lpDesktop=TEXT(winsta0 \\ \\default); // This allows desktop interaction and if the app // launched with CreateProcess has a gui, it will be displayed with this option. // However the desktop interaction has to be discouraged ZeroMemory( &amp;pi, sizeof(pi) ); CreateProcess( NULL, // No module name (use command line) _tcsdup(TEXT( \\D:test.exe)), // Command line //_tcsdup(TEXT( \\D: \\ \\Program Files \\ \\MyApp \\ -L -S)), // Command line NULL, // Process handle not inheritable NULL, // Thread handle not inheritable FALSE, // Set handle inheritance to FALSE 0, // No creation flags NULL, // Use parent \'s environment block NULL, // Use parent \'s starting directory &amp;si, // Pointer to STARTUPINFO structure &amp;pi ) ; // Pointer to PROCESS_INFORMATION structure // to kill the process: TerminateProcess(pi.hProcess,0); */ // End process launching ***************************************************** } catch( _com_error err) { CoUninitialize(); // Calling The following function causes the service to stop ReportSvcStatus(SERVICE_STOPPED, NO_ERROR, 0 ); bReturn = false; } } CoUninitialize(); Sleep(3600000); // 1 hour waiting for the next information } return 0; } //******************************************************************************************************************************************* //*********************************THE END OF CORE CODE OF THE SERVICE************************************************************************ // Stage 7 Purpose: Sets the current service status and reports it to the SCM. // Parameters: // dwCurrentState - The current state (see SERVICE_STATUS) // dwWin32ExitCode - The system error code // dwWaitHint - Estimated time for pending operation, // in milliseconds // // Return value: // None // VOID ReportSvcStatus( DWORD dwCurrentState, DWORD dwWin32ExitCode, DWORD dwWaitHint) { static DWORD dwCheckPoint = 1; // Fill in the SERVICE_STATUS structure. gSvcStatus.dwCurrentState = dwCurrentState; gSvcStatus.dwWin32ExitCode = dwWin32ExitCode; gSvcStatus.dwWaitHint = dwWaitHint; if (dwCurrentState == SERVICE_START_PENDING) gSvcStatus.dwControlsAccepted = 0; else gSvcStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP; if ( (dwCurrentState == SERVICE_RUNNING) || (dwCurrentState == SERVICE_STOPPED) ) gSvcStatus.dwCheckPoint = 0; else gSvcStatus.dwCheckPoint = dwCheckPoint++; // Report the status of the service to the SCM. SetServiceStatus( gSvcStatusHandle, &amp;gSvcStatus ); } // Stage 8 Purpose: // Called by SCM whenever a control code is sent to the service // using the ControlService function. // Parameters: // dwCtrl - control code // Return value: None VOID WINAPI SvcCtrlHandler( DWORD dwCtrl ) { // Handle the requested control code. switch(dwCtrl) { case SERVICE_CONTROL_STOP: ReportSvcStatus(SERVICE_STOP_PENDING, NO_ERROR, 0); // Signal the service to stop. SetEvent(ghSvcStopEvent); return; case SERVICE_CONTROL_INTERROGATE: // Fall through to send current status. break; default: break; } ReportSvcStatus(gSvcStatus.dwCurrentState, NO_ERROR, 0); } // Stage 9 Purpose: // Logs messages to the event log // Parameters: // szFunction - name of function that failed // Return value:None // Remarks: // The service must have an entry in the Application event log. VOID SvcReportEvent(LPTSTR szFunction) // Application event viewer management { HANDLE hEventSource; LPCTSTR lpszStrings[2]; TCHAR Buffer[80]; hEventSource = RegisterEventSource(NULL, SVCNAME); if( NULL != hEventSource ) { _stprintf_s(Buffer, 80, TEXT(%s failed with %d), (TCHAR*)szFunction, GetLastError()); lpszStrings[0] = SVCNAME; lpszStrings[1] = Buffer; ReportEvent(hEventSource, // event log handle EVENTLOG_ERROR_TYPE, // event type 0, // event category SVC_ERROR, // event identifier NULL, // no security identifier 2, // size of lpszStrings array 0, // no binary data lpszStrings, // array of strings NULL); // no binary data DeregisterEventSource(hEventSource); } } Home Index ",32);arrFiles[61]=new Array(62,"blog/abstractclasses.html","21 Jan 2008","C# Reference by DMM","","","Difference between an abstract method &amp; virtual method Abstract method does not provide an implementation &amp; forces the derived class to override the method. Virtual method has an implementation and provide the derived class with the option of overriding it. Home Index Abstract classes &amp; methods Abstract class is a class that has no direct instances, but whose descendants may have direct instances. There are cases in which it is useful to define classes for which the programmer doesn \'t want to instantiate any objects; these classes normally are used as base-classes in inheritance hierarchies and they are called abstract classes . An abstract class cannot be instantiated and it only contains the declaration of methodos but not the definition. Derived classes called concrete classes must define what is declared in base classes. In other word Abstract classes normally contain one or more abstract methods or abstract properties , such methods or properties do not provide implementations, but the derived classes must override inherited abstract methods or properties otherwhise they don \'t compile, unless the derived classes also are marked as abstract.. A class is made abstract by declaring it with Keyword abstract . Example: base class not instantiable public abstract class BASELISTENER { public abstract void LISTEN(); } class ASINCLISTENER:BASELISTENER { Socket Lis; private ManualResetEvent[] allDone; private String repository_path; string logfile_path; private Thread[] go; private Object lockobj; private int m_tcpport; public ASINCLISTENER(int port) { // Construction code here } ...other......... Methods...... public override void LISTEN() // We must override the LISTEN() { // code here } } When it comes to the object usage we can write this way: BASELISTENER alfa = new ASINCLISTENER(11000); alfa.LISTEN(); ",9);arrFiles[62]=new Array(63,"blog/virtualc.html","4 Jul 2008","C# Reference by DMM","","","Learning C# C# is one of the most intuitive languages of the :NET framework, it is very simple and resembles C++. Home Index Virtual Method Concept in C# The virtual keyword is used to modify a method or property declaration, in which case the method or the property is called a virtual member. The implementation of a virtual member can be changed by an overriding member in a derived class. When a virtual method is invoked, the run-time type of the object is checked for an overriding member. The overriding member in the most derived class is called, which might be the original member, if no derived class has overridden the member. By default, methods are non-virtual. You cannot override a non-virtual method. You cannot use the virtual modifier with the following modifiers: static abstract override The following is an example taken from Microsoft MSDN Web Site, suitable for Visual Studio 2008 using System; using System.Collections.Generic; using System.Linq; using System.Text; class TestClass { public class Dimensions { public const double pi = Math.PI; protected double x, y; // they are seen on derived classes public Dimensions() { } public Dimensions(double x, double y) { this.x = x; this.y = y; } public virtual double Area() { return x * y; } } public class Circle : Dimensions { public Circle(double r) : base(r, 0) { } public override double Area() { return pi * x * x; } } class Sphere : Dimensions { public Sphere(double r) : base(r, 0) { } public override double Area() { return 4 * pi * x * x; } } class Cylinder : Dimensions { public Cylinder(double r, double h) : base(r, h) { } public override double Area() { return 2 * pi * x * x + 2 * pi * x * y; } } public static void Main() { double r = 3.0, h = 5.0; Dimensions c = new Circle(r); Dimensions s = new Sphere(r); Dimensions l = new Cylinder(r, h); // Display results: Console.WriteLine(Area of Circle = {0:F2}, c.Area()); Console.WriteLine(Area of Sphere = {0:F2}, s.Area()); Console.WriteLine(Area of Cylinder = {0:F2}, l.Area()); Console.ReadLine(); } } Home Index ",10);arrFiles[63]=new Array(64,"blog/sealedclasses.html","21 Jan 2008","Sealed Classes C# DMM reference","","","The sealed keyword placed before the class declaration precludes derivation. Home Index Sealed modifier stops derivation The sealed modifier is used to prevent derivation from a class. Compile error occurs if trying to derive a class from a sealed class. It is corollary that a sealed class cannot be marked as abstract. In C# structs are implicitly sealed; therefore, they cannot be inherited. ",7);arrFiles[64]=new Array(65,"blog/thread0.html","22 Jan 2008","C# DMM reference: passing parameters to a thread","","","This content is not valid prior to .NET 2.0 .NET 2.0 .NET 3.0 and 3.5 expose the Delegate ParameterizedThreadStart Home Index Passing parameters to a thread. The following example declares and instanciates 25 new threads, then each of them is started providing the number of the thread inside each worker function. In this way it is possible to avoid using a global variable and keep the code clean and of easy maintenance. Thread go = new Thread[25]; for (int n = 0; n &lt; 25; ++n) { go[n] = new Thread(new ParameterizedThreadStart(goandlisten)); go[n].Start((object)n); } .............. code inside the hosting class private void goandlisten(object par) { int n = (int)par; // I get the thread ID // more code in the function ..... } .............. code inside the hosting class ",8);arrFiles[65]=new Array(66,"Blog/settingscsharp.html","4 Oct 2008","How to retrieve and save parameters from App Settings in c#","","","Defining secret settings in the configuration file is the best way to code; never let passwords inside the source code. Home Index C# and App.config File VS 2008 To work with app.config file we must add the reference to System.Configuration in the add references windows and add the using System.Configuration at the top of our application, then we can add an App.config file and fill it with whatever key we need. Here it follows a simple App.config file: &lt;?xml version=1.0 encoding=utf-8 ?&gt; &lt;configuration&gt; &lt;configSections&gt; &lt;/configSections&gt; &lt;appSettings&gt; &lt;add key=Name value=Diego /&gt; &lt;add key=Telephone value=0108398007 /&gt; &lt;/appSettings&gt; &lt;connectionStrings&gt; &lt;add name=Oracle DB connectionString=Oracle connection providerName= /&gt; &lt;add name=Sql Server DB connectionString=Sql Server Connection providerName= /&gt; &lt;/connectionStrings&gt; &lt;/configuration&gt; If we want to rescue a specific key from the code of our application we do: string cnnoracle = ConfigurationManager.ConnectionStrings[ Oracle DB ].ToString(); string cnnsql = ConfigurationManager.ConnectionStrings[ Sql Server DB ].ToString(); string name = ConfigurationManager.AppSettings[Name].ToString(); If instead we want to write new values or modify the existing values in the configuration file, It is very important to remember that the first time we compile the application, a file named ApplicationName.exe.config is created in the startup folder of the apps whether the compilation takes place in debug environment o release. Next time a compilation is performed the file is not overwritten because it could be possible that the user had modified it via the application. Let \'s see now how to access the configuration file // Load the current application \'s configuration file: WHERE? in the //ApplicationName.exe.config file Configuration config = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath); // get a ConnectionStringSettings Object: ConnectionStringSettings connStrSettings = config.ConnectionStrings.ConnectionStrings[Oracle IAPRIF]; connStrSettings.ConnectionString = New ConnectionString; // The following to modify a key in Appsettings section config.AppSettings.Settings[Name].Value = xxxxxxxxxxxxxxxxxxxxxxxxx; // The following to add a new setting in the appsettings section config.AppSettings.Settings.Add(pluto, DateTime.Now.ToLongDateString() + + DateTime.Now.ToLongTimeString()); /* Save the changes back to disk; WHERE? in the ApplicationName.exe.config file which is stored in The application startup folder*/ config.Save(); Home Index ",11);arrFiles[66]=new Array(67,"Blog/webclientcsharp.html","15 Jul 2008","Using WebClient Class to download or upload a file","","","The file is directly downloaded into the dir where the executable resides Home Index Using WebClient class to download a file using System.Net; string remoteUri = http://www.dmm888.com/images/; string fileName = wherearewe.jpg, myStringWebResource = null; // Create a new WebClient instance. WebClient myWebClient = new WebClient(); // Concatenate the domain with the Web resource filename. myStringWebResource = remoteUri + fileName; myWebClient.DownloadFile(myStringWebResource, fileName); Using WebClient class to upload a file providing credentials. using System.Net; // the first thing to do is to declare the url with attached the file we want //to have // uploaded on our server. String uriString = ftp://ftp.dmm888.com/dmm888.com/public/ + cat.txt; // then we Create a new WebClient instance. WebClient myWebClient = new WebClient(); // in order to be able to connect we have to provide credentials myWebClient.Credentials = new System.Net.NetworkCredential(username, password); // at this point we point to the file on our client to be uploaded // in this case we assume the names will be the same either on client and //on server string fileName = c: \\ \\cat.txt; // Upload the file to the URI. // The  \'UploadFile(uriString,fileName) \' method implicitly uses HTTP POST //method. byte[] responseArray = myWebClient.UploadFile(uriString, fileName); // Decode and display the response. Console.WriteLine(System.Text.Encoding.ASCII.GetString(responseArray)); Home ",9);arrFiles[67]=new Array(68,"Blog/socketscsharp.html","30 Jan 2008","Tcp Sockets usage","","","Home Index TCP Sockets /*The following implementation is a Listener that accepts multiple connections and * deals with them simultaneously by creating an array of thread workers for every * object SSERVER. * as we can create an array of SSERVER we have also the opportunity * to listen on multiple ports. * The class performs a parallel task of receiving files from multiple senders * which are on remote machines. */ The Server part using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Sockets; using System.IO; using System.Text; using System.Threading; namespace MULTICONNTCPLISTENR { class Program { static void Main(string[] args) { SSERVER[] m_instrument = new SSERVER[5]; // I create 5 object that listen //for ten simultaneous connection each on port through 11000 to 11004 for (int n = 0; n &lt; 5; ++n) { m_instrument[n] = new SSERVER(11000 + n); } Console.WriteLine(TCPlistener Server Listening press x and enter to exit); Console.ReadLine(); } } //************************************************************************* class SSERVER { TcpListener tcpListener; Socket listenersocket; Thread[] worker; string repository_path; int m_tcpport; public SSERVER(int port) { m_tcpport = port; repository_path = c: \\ \\dropfiles; //we create the directory if it doesn \'t exist if (!Directory.Exists(repository_path)) { Directory.CreateDirectory(repository_path);} tcpListener = new TcpListener(IPAddress.Any, m_tcpport); listenersocket = tcpListener.Server; // to extract the underlying socket listener listenersocket.ReceiveBufferSize = (32768); // 32 kb buffer for receiving tcpListener.Start(10); // Now we create the worker threads to deal simultaneously with incoming connections worker = new Thread[10]; for (int n = 0; n &lt; 10; n++) {// I create the tread pool and pass them the id worker[n] = new Thread(new ParameterizedThreadStart(go)); worker[n].Start(n); } } private void go(object m_threadid) // This is the correct syntax for accepting a parameter { Socket socketForClient; FileStream mystream = null; bool firsttime=true; int num; string m_fname = ; // The filename that is to be rescued by the server string m_ffullname = ; // The filename plus the repositorypath byte[] header = new byte[50]; byte[] data = new byte[32768]; // 32 kb buffer allocated for the data received byte[] Lun = new byte[8]; // The file length of the file to be rescued long lfile; while (true) { socketForClient = tcpListener.AcceptSocket(); num = -1; firsttime = true; if (socketForClient.Connected) { while (num != 0) { if (firsttime) { num = socketForClient.Receive(Lun, 0, 8, SocketFlags.Partial); lfile = BitConverter.ToInt64(Lun, 0); // here we receive the filesize but in this last implementazion // the filesize is not used because instead of allocation an array of the filesize dimension // we allocate only once data as 128 kbytes and we perform multiple receive until we have // reached the total amount of the file sent num = socketForClient.Receive(header, 0, 50, SocketFlags.Partial);// received the filename UTF8Encoding UTF = new UTF8Encoding(); m_fname = UTF.GetString(header, 0, 50).Trim(); m_ffullname = repository_path + @ \\ + m_fname; mystream = new FileStream(m_ffullname, FileMode.Create, FileAccess.Write); firsttime = false; } else { num = socketForClient.Receive(data); if (num &gt; 0) { mystream.Write(data, 0, num); } else { mystream.Close(); socketForClient.Close(); socketForClient = null; num = 0; Console.WriteLine(The file + m_fname + Has been received by the Manager n° + m_threadid.ToString() + on Port: + m_tcpport.ToString()); m_fname = ; m_ffullname = ; } } } } } } } //**********************************END OF CLASS SSERVER************************************************************* }// **********End namespace The Client part To implement a client part it is only sufficient to create a socket and send data after having packed them into a byte array, and specified also the file name plus its length. Home Index ",13);arrFiles[68]=new Array(69,"Blog/md5sumcsharp.html","30 Jan 2008","MD5 Sum basic and usage","","","Home Index MD5 Sum basics and computing The purpose of this document is not explaining thoroughly the theory underlying  MD5 sum; what it’s wished to achieve here is about giving information on how to use it on .NET environment. To do so we must state that the MD5 algorithm is implemented in the following namespace that is mandatory to insert in our declarations. using System.Security.Cryptography; It is possible to calculate the MD5 sum of everything, but often it is interesting to determine  the md5 sum of a byte array which can be the content of a file for example. Let’s see the following fragment of code. T2.Clear(); // In a windows form application T2 can be a text box StringBuilder sb = new StringBuilder(); // we open the file FileStream fs = new FileStream(open1.FileName.ToString(), FileMode.Open, FileAccess.Read); // we allocate memory for a byte array byte[] buf = new byte[fs.Length]; // we read the file content in the byte array alfa.Read(buf, 0, (int)fs.Length); fs.Close(); // we instantiate our object for MD5 calculus MD5 md5 = new MD5CryptoServiceProvider(); // We calculate MD5 and store it in a byte array               byte[] hash = md5.ComputeHash(buf); // now the byte array is transformed in a string of exadecimal values foreach (byte hex in hash) { sb.Append(hex.ToString(x2)); } // finally the result is placed in the textbox T2.Text = sb.ToString(); For example the tipycal result for a file could be something like that: Md5sum = eb574b236133e60c989c6f472f07827b We know that we can almost state that every file has an unique MD5 sum, so it is possible to check this sum after downloading the file itself to see, if the content is the same as it was prior the download. Another usage of the MD5 sum would be to calculate it for a password and store the result in a database used by an application. When users want to log to the application they insert the password, and the validation code of the application calculates the MD5 sum for the given password. If the result compared to the one stored in the database are the same the authentication is granted otherwise not. The power of MD5 sum is that is almost impossible to get the original from the sum itself, so the level of trust involved is accettable and safe. Home Index ",10);arrFiles[69]=new Array(70,"Blog/dgridrows.html","8 Feb 2008","Getting the row number from a datagrid","","","Home Index Number of rows in a datagrid Sometimes can be useful to determine the number of rows currently present in a datagrid. The following fragments gives the number of rows for a datagrid named Dettagli. int numberofrows = Dettagli.BindingContext(Dettagli.DataSource, Dettagli.DataMember).Count; The difference between the above code and retrieving the row number by asking to the underlying datasource property is that this last chance doesn \'t work if a datagrid is populated by a dataviemanager object. Home Index ",7);arrFiles[70]=new Array(71,"Blog/memorystream.html","15 Jun 2008","MemoryStream usage in c#","","","The MemoryStream object is a powerful tool that can aid input/output operation at byte level. Home Index DMM C# Reference .Net MemoryStream object The following is a very simple but clear example of how to create a memory stream, fill it with binary data and then read the content into a file. MemoryStream alfa; alfa = new MemoryStream(); byte[] mybuf; mybuf= new byte[1000]; // we store 10 as value in a chunk of 1000 bytes for (int i = 0; i &lt; mybuf.Length; i++) { mybuf[i] = 10; } alfa.Write(mybuf, 0, mybuf.Length); // now we reuse the byte array to store a chunk of 1000 // bytes with value 11 for (int i = 0; i &lt; mybuf.Length; i++) { mybuf[i] = 11; } // writing again into the memorystream object the next chunk // of 1000 bytes bearing in mind that the memorystream pointer // moves by itself automatically alfa.Write(mybuf, 0, mybuf.Length); textBox1.Text = alfa.Length.ToString(); // We peek at the end of the first chunk alfa.Seek(999, SeekOrigin.Begin); textBox2.Text = alfa.ReadByte().ToString(); // We peek again at the end of the second chunk alfa.Seek(1999, SeekOrigin.Begin); textBox3.Text = alfa.ReadByte().ToString(); // When done we save the content of the memorystream to a file FileStream store = new FileStream(@c: \\test.bin,FileMode.Create,FileAccess.Write); store.Write(alfa.GetBuffer(), 0, (int)alfa.Length); store.Close(); Home Index ",9);arrFiles[71]=new Array(72,"Blog/linq1.html","6 Jul 2008","A basic LINQ Sample 1","","","Home Index A very short and basic LINQ sample The following sample is intended to cast light on the basis of LINQ static void Main(string[] args) { //First of all we define an array of integers int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 }; //Now we define a var that is nothing else that a collection wich contains the data from the LINQ //query var lowNums = from n in numbers where n &lt; 5 select n; // we inspect all the collection to print out results Console.WriteLine(Numbers &lt; 5:); foreach (var x in lowNums) { Console.WriteLine(x); } int[] numbers1 = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 }; string[] digits = { zero, one, two, three, four, five, six, seven, eight, nine }; // The following sample of LINQ Query allow the selection of specific data var lowNums1 = from n in numbers1 where n &lt; 5 select digits[n]; Console.WriteLine(Numbers &lt; 5:); foreach (var num in lowNums1) { Console.WriteLine(num); } //The following is instead a demonstration that a var can be casted to a string var h=; h = Hello to everyone; String alfa = (String)h; Console.WriteLine(alfa); } Home Index ",9);arrFiles[72]=new Array(73,"Blog/linq2.html","6 Jul 2008","LINQ: Querying an untyped dataset","","","Home Index An useful sample of LINQ to DATASET The following sample is useful when it is needed to perform filtering of data against an untyped dataset. // The following sample show how to proficently query an untyped dataset overriding the limitation // of selection due to the weakness of dataset/datatable about aggregation and filtering String cns = Provider=Microsoft.ACE.OLEDB.12.0;Data Source= + Application.StartupPath +  \\ \\words.accdb;Persist Security Info=False; DataSet ds = new DataSet(Words); OleDbConnection cn = new OleDbConnection(cns); OleDbDataAdapter ada = new OleDbDataAdapter(select * from words, cn); ada.Fill(ds); DataTable TB = ds.Tables[0]; var custs = from c in ds.Tables[0].AsEnumerable() // We wish for example all words that start with the c letter where c.Field&lt;string&gt;(written).ToString().StartsWith(c) == true select new { written = c.Field&lt;string&gt;(written), pronounced = c.Field&lt;string&gt;(pronounced) }; foreach (var worde in custs) { LB.Items.Add(worde.written); // LB and LB1 are Listbox objects LB1.Items.Add(worde.pronounced); } // The following sample is like the first but using the IEnumerable&lt;DataRow&gt; // instead of var we can easily convert a linq query into a datatable and // showing the datasource property in a datagridview String cns = Provider=Microsoft.ACE.OLEDB.12.0;Data Source= + Application.StartupPath +  \\ \\words.accdb;Persist Security Info=False; DataSet ds = new DataSet(Words); OleDbConnection cn = new OleDbConnection(cns); OleDbDataAdapter ada = new OleDbDataAdapter(select * from words, cn); ada.Fill(ds); DataTable TB = ds.Tables[0]; IEnumerable&lt;DataRow&gt; custs = // Here lays the difference with the previous sample from c in ds.Tables[0].AsEnumerable() // We wish for example all words that start with the c letter where c.Field&lt;string&gt;(written).ToString().StartsWith(c) == true select c; // Create a table from the query. DataTable boundTable = custs.CopyToDataTable&lt;DataRow&gt;(); // Bind the table to a System.Windows.Forms.DataGridView, dataGridView1.DataSource = boundTable; Home Index ",10);arrFiles[73]=new Array(74,"Blog/startprocess.html","11 Jul 2008","DMM C# reference: how to start a process with user credentials","","","Home Index ProcessStartInfo Object to start a process with user credentials // The following is best practice to start a process with user credentials ProcessStartInfo myProcess = new ProcessStartInfo(notepad.exe); // The WorkingDirectory property must be set if UserName and // Password are provided. If the property is not set, the default // working directory is %SYSTEMROOT% \\system32. //Setting the Domain, UserName, and the Password properties //in a ProcessStartInfo object is the recommended practice for //starting a process with user credentials. myProcess.UserName = currentuserloggedname; // it must be the user name currently logged SecureString password = new SecureString(); password.AppendChar( \'p \'); // repeat It must be the password associated to the user currently logged password.AppendChar( \'a \'); // repeat password.AppendChar( \'s \'); // repeat password.AppendChar( \'s \'); // repeat password.AppendChar( \'w \'); // repeat password.AppendChar( \'o \'); // repeat password.AppendChar( \'r \'); // repeat password.AppendChar( \'d \'); // repeat myProcess.Password = password; //If you provide a value for the Password property, //the UseShellExecute property must be false, or an //InvalidOperationException will be thrown when the Start method is called. myProcess.UseShellExecute = false; Process.Start(myProcess); Home Index ",9);arrFiles[74]=new Array(75,"Blog/wcfserialization.html","14 Jul 2008","A sample of Windows Communication Foundation Serialization","","","Home Index WCF Serialization Download sample code from here The following sample demonstrate WCF Serialization and it shows also LINQ to datatable caps. using System.Linq; using System.Text; using System; using System.Collections; using System.Collections.Generic; using System.Runtime.Serialization; using System.Xml; using System.IO; using System.Data; using System.Data.OleDb; using System.ServiceModel.Channels; using System.Xml.Serialization; // You must apply a DataContractAttribute or SerializableAttribute // to a class to have it serialized by the DataContractSerializer. [DataContract(Name = Data, Namespace = http://www.dmm888.com)] struct datas { [DataMember()] public string written; [DataMember()] public string pronounced; } [DataContract(Name = Test, Namespace = http://www.dmm888.com)] class Myclass { public DataTable TB; [DataMember()] public datas[] test; public Myclass() { String cns = Provider=Microsoft.ACE.OLEDB.12.0;Data Source=words.accdb;Persist Security Info=False; TB = new DataTable(Words); OleDbConnection cn = new OleDbConnection(cns); OleDbDataAdapter ada = new OleDbDataAdapter(Select * from words, cn); ada.Fill(TB); var custs = from c in TB.AsEnumerable() // We wish for example all words that start with the c letter where c.Field&lt;string&gt;(written).ToString().StartsWith(c) == true select new { written = c.Field&lt;string&gt;(written), pronounced = c.Field&lt;string&gt;(pronounced) }; // Now we can copy the content of the LINQ result into a user defined variable // which can be serialized test = new datas[custs.Count()]; int counter=0; foreach (var c in custs) { test[counter].written = c.written; test[counter].pronounced = c.pronounced; ++counter; } } } class program { static void Main(string[] args) { // We serialize the class and all its content Myclass m = new Myclass(); FileStream writer = new FileStream(@c: \\test.xml, FileMode.Create); DataContractSerializer ser = new DataContractSerializer(typeof(Myclass)); ser.WriteObject(writer, m); writer.Close(); // now we read from disk the saved data and check it for conformity with the original object FileStream reader = new FileStream(@c: \\test.xml, FileMode.Open); Myclass mn; mn=(Myclass) ser.ReadObject(reader); Console.WriteLine(m.test.Count()); // The two value are equal Console.WriteLine(mn.test.Count()); //******************************************************************************** // Now we perform binary serialization using (Message msg = Message.CreateMessage( MessageVersion.Soap12WSAddressingAugust2004, http://www.dmm888.com, m, new DataContractSerializer(typeof(Myclass)))) using (FileStream fs = new FileStream(@c: \\test.bin, FileMode.Create)) using (XmlDictionaryWriter dwriter = XmlDictionaryWriter.CreateBinaryWriter(fs)) { //Serialize Myclass object into binay data msg.WriteMessage(dwriter); dwriter.Close(); // If we omit this we have an exception during deserialization fs.Close(); } // now we read from disk binary data and check for conformity using (FileStream fs = new FileStream(@c: \\test.bin, FileMode.Open,FileAccess.Read)) using (XmlDictionaryReader rd = XmlDictionaryReader.CreateBinaryReader(fs, XmlDictionaryReaderQuotas.Max)) { using (Message msg = Message.CreateMessage(rd, 1024, MessageVersion.Soap12WSAddressingAugust2004)) { msg.Headers.Action = http://www.dmm888.com; // deserialize Myclass object from binary Myclass mnb = msg.GetBody&lt;Myclass&gt;(new DataContractSerializer(typeof(Myclass))); Console.WriteLine(m.test.Count()); // The two value are equal Console.WriteLine(mnb.test.Count()); fs.Close(); } } } Home Index ",13);arrFiles[75]=new Array(76,"Blog/datagridviewcell.html","29 Jul 2008","How to rescue the content of a cell in a Windows Forms DataGridView","","","Home Index DMM C# Reference DataGridView Control: Easy to collect values from cells . When we click on a cell of a DataGridView we fire the following event: private void MyDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e) { // Assuming that the value is a string we can write string myvalue; myvalue = MyiDataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(); // we can also set the value doing the reverse operation string mynewvalue=Hello; MyiDataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value=mynewvalue; } Home Index ",8);arrFiles[76]=new Array(77,"Blog/criptoservice.html","31 Aug 2008","Criptoserviceprovider Class in an exaustive sample of file Encryption","","","Home Index DMM C# Reference Criptoserviceprovider Class in an exaustive sample of file Encryption Download Sample solution in Three different Languages C#, VB.NET, C++.NET The sample cover file encryption and decryption. Home Index ",7);arrFiles[77]=new Array(78,"Blog/extensions.html","11 Sep 2008","Extension Methods In c#","","","Home Index DMM C# Reference Extension Methods Extension methods enable you to add methods to existing types without creating a new derived type, recompiling, or otherwise modifying the original type. Extension methods are a special kind of static method, but they are called as if they were instance methods on the extended type. For client code written in C# and Visual Basic, there is no apparent difference between calling an extension method and the methods that are actually defined in a type. (only in intellisense the difference is shown) Download Sample solution for Extension Methods Home Index ",8);arrFiles[78]=new Array(79,"Blog/Makeaccess20032007.html","20 Sep 2008","Simply create an Access 2003/2007 file using C# and com support","","","Home Index DMM C# Reference How to create an Access 2003 and 2007 Database File using Com Support In Visual Studio 2008 and below we can take advantage of com support to build a database file using ADOX extensions and DAO com extensions. Download Sample solution for MAkeAccess Sample // Please read carefully the following note: // In order to create access 2007 files the Access runtime must be installed on machine which // are not supposed to have Office 2007 installed. So in the Solution folder is present the runtime // which can be also downloaded at the following location // http://www.microsoft.com/downloads/details.aspx?FamilyID=d9ae78d9-9dc6-4b38-9fa6-2c745a175aed&amp;displaylang=en using System; using System.Collections.Generic; using System.Text; using ADOX; using System.Windows.Forms; using System.IO; using System.Threading; namespace MakeAccess20032007 { class Program { static void Main(string[] args) { // This fragment creates an Access 2003 file in the working dir of the app. // please remember to add the following com referenc: // Microsoft ADO Ext. 2.8 for DDL and Security ADOX.CatalogClass cat = new ADOX.CatalogClass(); if (File.Exists(Application.StartupPath + @ \\newMDB.mdb)) File.Delete(Application.StartupPath + @ \\newMDB.mdb); cat.Create(Provider=Microsoft.Jet.OLEDB.4.0; + Data Source= + Application.StartupPath + @ \\newMDB.mdb; + Jet OLEDB:Engine Type=5); //JET version Engine Type code //JET 1.0 1 //JET 1.1 2 //JET 2.0 3 //JET 3.x 4 //JET 4.x 5 cat = null; GC.Collect(); // Invoke garbage collection giving it some time to react Thread.Sleep(10); // Hopefully ?! //********************************************************************************************* // now we can compact the database using the following // don \'t forget to add the following reference: // Microsoft DAO 3.6 Object Library if (File.Exists(Application.StartupPath + @ \\newMDBmdbcompacted.mdb)) File.Delete(Application.StartupPath + @ \\newMDBmdbcompacted.mdb); dao.DBEngine db = new dao.DBEngine(); db.CompactDatabase(Application.StartupPath + @ \\newMDB.mdb, Application.StartupPath + @ \\newMDBmdbcompacted.mdb,null,null,null); //*********************************************************************************************** // Now we create an Access 2007 file // The reference to add is // Microsoft Office 12.0 Access database engine Object Library // Please be aware that in this case Dao is different from the previous dao which instead belongs to old // DAO 3.6 if (File.Exists(Application.StartupPath + @ \\newMDB2007.accdb)) File.Delete(Application.StartupPath + @ \\newMDB2007.accdb); Microsoft.Office.Interop.Access.Dao.DBEngine alfa; Microsoft.Office.Interop.Access.Dao.Database beta; alfa = new Microsoft.Office.Interop.Access.Dao.DBEngine(); beta= alfa.CreateDatabase(Application.StartupPath + @ \\newMDB2007.accdb,@;LANGID=0x0409;CP=1252;COUNTRY=0, Microsoft.Office.Interop.Access.Dao.DatabaseTypeEnum.dbVersion120); beta.Close(); alfa = null; Console.WriteLine(Databases Created Successfully); } } } Home Index ",12);arrFiles[79]=new Array(80,"Blog/CrossThread.html","27 Sep 2008","Multithreading:Cross Thread Problems in Windows Forms Applications","","","Home Index DMM C# Reference Multithreading: Windows Forms Cross Thread issue can elegantly managed by using Delegates and System.Threading support. The following sample shows a way to deal with Cross Thread and solve the problem using Delegates. Download Sample solution for CrossThread Sample Home Index ",8);arrFiles[80]=new Array(81,"Blog/AutoManualMulti.html","21 Sep 2008","Multithreading: Difference between AutoResetEvent and ManualResetEvent","","","Home Index DMM C# Reference Multithreading: Difference between AutoResetEvent and ManualResetEvent They are two basic Syncronization objects that are very important for managing shared resources in a multithreaded environment. Download Sample solution for ThreadTest Sample /* This Sample is intended to cast light upon some multithreading Syncronization objects as well as The problem relates to Cross-thread issues wich can be managed using delegates and The invokerequired method on them. The sample provide only a simple Windows Form interface with two buttons; if a button is pressed it becomes disabled and a thread is started doing nothing but wait for 2 seconds, then the pressed button becomes enabled again. In order to avoid illegal cross thread calls another thread is created which manage the correct abilitation of the button */ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Threading; namespace ThreadTest { public partial class Form1 : Form { private Thread worker; private AutoResetEvent allDoneAuto; /*An AutoResetEvent is much like a ticket turnstile: (cancelletto della metropolitana) inserting a ticket lets exactly one person through. The auto in the class \'s name refers to the fact that an open turnstile automatically closes or resets after someone is let through. A thread waits, or blocks, at the turnstile by calling WaitOne (wait at this one turnstile until it opens) and a ticket is inserted by calling the Set method. If a number of threads call WaitOne, a queue builds up behind the turnstile. A ticket can come from any thread in other words, any (unblocked) thread with access to the AutoResetEvent object can call Set on it to release one blocked thread.*/ private ManualResetEvent allDoneManual; /*A ManualResetEvent is a variation on AutoResetEvent. It differs in that it doesn \'t automatically reset after a thread is let through on a WaitOne call, and so functions like a gate: calling Set opens the gate, allowing any number of threads that WaitOne at the gate through; calling Reset closes the gate, causing, potentially, a queue of waiters to accumulate until its next opened.*/ private delegate void ButtonManualWork(); // Delegate for cross thread safety for accessing btntaskmanual button //properties private delegate void ButtonAutoWork(); // Delegate for cross thread safety for accessing btntask auto properties private Thread ControlManualButton; // thread to manage btntaskmanual private Thread ControlAutoButton; // thread to manage btntaskauto public Form1() { InitializeComponent(); allDoneManual = new ManualResetEvent(false); // creation of the ManualresetEvent initially not signalled allDoneAuto = new AutoResetEvent(false); //creation of the AutoResetEvent initially not signalled } private void btntaskmanual_Click(object sender, EventArgs e) { btntaskmanual.Enabled = false; worker = new Thread(new ThreadStart(WorkerFunctionManualReset)); worker.Start(); allDoneManual.WaitOne(); // here the main thread is blocked waiting for a signal } private void WorkerFunctionManualReset() { Thread.Sleep(2000); allDoneManual.Set(); // it doesn \'t automatically reset after a thread is let through on a WaitOne call by using Set() allDoneManual.Reset(); // so it must be resetted manually; It \'s like a gate that must be closed after being set. // once we have finished we must manage cross thread problems so we create another thread ControlManualButton = new Thread(new ThreadStart(DoControlManual)); ControlManualButton.Start(); } private void DoControlManual() { /*InvokeRequired Explanation Controls in Windows Forms are bound to a specific thread and are not thread safe. Therefore, if you are calling a control \'s method from a different thread, you must use one of the control \'s invoke methods to marshal the call to the proper thread. This property can be used to determine if you must call an invoke method, which can be useful if you do not know what thread owns a control. */ if (this.btntaskmanual.InvokeRequired) { ButtonManualWork temp = new ButtonManualWork(DoControlManual); this.Invoke(temp); //Executes a delegate on the thread that owns the control \'s underlying window handle. } else { btntaskmanual.Enabled = true; // at last the property can be set if no illegal cross thread } } private void DoControlAuto() { if (this.btntaskmanual.InvokeRequired) { ButtonAutoWork temp = new ButtonAutoWork(DoControlAuto); this.Invoke(temp); } else { btntaskauto.Enabled = true; } } private void btntaskauto_Click(object sender, EventArgs e) { btntaskauto.Enabled = false; worker = new Thread(new ThreadStart(WorkerFunctionAutoReset)); worker.Start(); allDoneAuto.WaitOne(); // here the main thread is blocked waiting for a signal } private void WorkerFunctionAutoReset() { Thread.Sleep(2000); allDoneAuto.Set(); // it automatically resets after a thread is let through on a WaitOne call by using Set() // therefore there \'s no need to reset it ControlAutoButton = new Thread(new ThreadStart(DoControlAuto)); ControlAutoButton.Start(); } } } Home Index ",16);arrFiles[81]=new Array(82,"Blog/WinformMultithreaded.html","28 Sep 2008","How to Update windows Forms Controls in a Multithreaded environment","","","Home Index DMM C# Reference Multithreading: How to Update windows Forms Controls in a Multithreaded environment When using Windows forms it is crucial to let Windows message pass indipendently from the multithreaded logic, so the following sample tries to cast light on the matter using a very simple approach. Download Sample solution for WinformMultithreaded Sample using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Threading; namespace Test { public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.Button btntaskauto; private Thread worker; private delegate void DelegateEnableButton(); // Delegate for safe acces btntaskmanual button properties private delegate void DelegateTextInLabel(); private delegate void DelegateUpdateLabelTime(); private Thread ThreadEnableButton; private Thread ThreadTextInLabel; private Thread ThreadLabelAutoCounter; private Thread ThreadUpdateTimeInLabel; private System.Windows.Forms.Label labelauto; // thread to manage btntaskauto private bool myflag; private DateTime starttime, endtime; private System.ComponentModel.Container components = null; public Form1() { InitializeComponent(); } protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose(); } } base.Dispose( disposing ); } [STAThread] static void Main() { Application.Run(new Form1()); } private void btntaskauto_Click(object sender, EventArgs e) { btntaskauto.Enabled = false; labelauto.Text=Task started; labelauto.Refresh(); starttime = System.DateTime.Now; worker = new Thread(new ThreadStart(WorkerStartTask)); worker.Priority = ThreadPriority.Highest; // The thread where the time consuming function is placed worker.IsBackground = true; worker.Start(); } private void WorkerStartTask() { myflag = false; ThreadLabelAutoCounter = new Thread(new ThreadStart(WorkerLabelAutoCounter)); ThreadLabelAutoCounter.Priority = ThreadPriority.Lowest; ThreadLabelAutoCounter.IsBackground = true; ThreadLabelAutoCounter.Start(); // This thread must get the maximum priority Thread.Sleep(3000); // this could be the time consuming function // end routine time consuming and the signalling flag becomes true myflag = true; // the following to signal that the task has finished ThreadEnableButton = new Thread(new ThreadStart(EnableButton)); ThreadEnableButton.Priority = ThreadPriority.Lowest; ThreadEnableButton.IsBackground = true; ThreadEnableButton.Start(); ThreadTextInLabel = new Thread(new ThreadStart(TextInLabel)); ThreadTextInLabel.IsBackground = true; ThreadTextInLabel.Priority = ThreadPriority.Lowest; ThreadTextInLabel.Start(); } private void EnableButton() { if (this.btntaskauto.InvokeRequired) { DelegateEnableButton temp = new DelegateEnableButton(EnableButton); this.Invoke(temp); } else { btntaskauto.Enabled = true; } } private void TextInLabel() { if (this.labelauto.InvokeRequired) { DelegateTextInLabel temp = new DelegateTextInLabel(TextInLabel); this.Invoke(temp); } else { labelauto.Text=Task finished; labelauto.Refresh(); } } private void WorkerLabelAutoCounter() { while(!myflag) // This is performed until the time consuming function hasn \'t returned { ThreadUpdateTimeInLabel = new Thread(new ThreadStart(UpdateElapsedTime)); ThreadUpdateTimeInLabel.Priority = ThreadPriority.Lowest; ThreadUpdateTimeInLabel.Start(); Thread.Sleep(1); // This to give some ownership to the starting thread } } private void UpdateElapsedTime() { try // This is necessary when we abruptly close the application { if (this.labelauto.InvokeRequired) { DelegateUpdateLabelTime temp = new DelegateUpdateLabelTime(UpdateElapsedTime); this.Invoke(temp); } else { endtime = System.DateTime.Now; labelauto.Text = new System.TimeSpan(endtime.Ticks - starttime.Ticks).ToString().Substring(0, 8); labelauto.Refresh(); } } catch (Exception ex) { Console.WriteLine(ex.ToString()); Application.Exit(); // If the application is abruptly closed it returns without recalling the delegate // that is because we have declared the thread as a background thread } } } } Home Index ",15);arrFiles[82]=new Array(83,"Blog/nullcolumn.html","17 Oct 2008","How to manage Null values when comparing datacolumn values","","","Home Index DMM C# Reference NULL values in DataColomns The following picture is an example of how to use the IsNull function in a DataRow to avoid exception when casting Datacolumn values that might be Null Home Index ",7);arrFiles[83]=new Array(84,"Blog/timeleft.html","4 Oct 2008","How to calculate the time left for an asyncronous call to complete while updating form appearance","","","Home Index DMM C# Reference More on Asyncronous calls and threads for managing user information Download Sample Solution This sample contains a procedure that is a simulation of a time consuming task and at the same time performs calculation of the remaining time for the task to complete updating a text box in the main window without causing cross thread exceptions; please bear in mind that this target could also be accomplished using the tactic of calling an asyncronous call using a delegate and its method BeginInvoke, however although the below chosen way is a little more complex for the code it generates, it allows more control on the monitoring side. Further on in the sample it is also present another Asyncronous call in the Form_Load event of the main form which uses a delegate to fire a function that updates the backcolor of the form. The example shows how to deal once again with cross thread issues and manage a background task. private void WW() // Simulation of a time consuming function { aider = new AutoResetEvent(false); int LineeDaElaborare = 4000; int lineeRimaste = 4000; int iCount = 0; System.DateTime timeStart; System.DateTime timeEnd; System.TimeSpan diff; timeStart = System.DateTime.Now; for (iCount = 1; iCount &lt; LineeDaElaborare+1; ++iCount) { Thread.Sleep(10); // One line done lineeRimaste -= 1; timeEnd = System.DateTime.Now; diff = timeEnd - timeStart; tim = (int)(((double)(diff.Ticks) / iCount) * lineeRimaste); temp = new TimeSpan(tim); TimeRemaining = new Thread(new ThreadStart(UpdateRemainingElapsedTime)); TimeRemaining.IsBackground = true; TimeRemaining.Priority = ThreadPriority.Normal; TimeRemaining.Start(); aider.WaitOne(); // wait until the label updater has finished its work in order to avoid parallel connections //with the label } } Here follows the function that modifies the background color of the main form public void FunctionToCall() { bool reverse = false; int r=255, g=255, b=255; while (true) { if (!reverse) { this.BackColor = Color.FromArgb(r, g, b); r -= 1; g -= 1; b -= 1; } else { this.BackColor = Color.FromArgb(r, g, b); r += 1; g += 1; b += 1; } if (r.Equals(225) || g.Equals(225) || b.Equals(225)) { reverse = true; } if (r.Equals(255) || g.Equals(255) || b.Equals(255)) { reverse = false; } Thread.Sleep(10); } } Home Index ",11);arrFiles[84]=new Array(85,"Blog/datarowcomparer.html","21 Oct 2008","A proficient way to compare two identical datatables using DatarowComparer class","","","Home Index DMM C# Reference DatarowComparer The following code fragment is an important note about the possible development of a strategy of database alignement using inbuilt Ado.NET caps. The code starts the idea in a context of alignement of two datatables which have different records and the target is to align the destination table in a way that all the rows that are present in the origin table are also present in destination. The sample doesn \'t cover all the issues that are involved in the procedure of DB alignement but can be a start. // code using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.OleDb; using System.IO; namespace TransactionForm { public partial class Form1 : Form { String myConnString = @Provider=Microsoft.Jet.OLEDB.4.0;Data Source= C: \\Documents and Settings \\Diego \\Desktop \\Test.mdb;Persist Security Info=False; String Cns = @Provider=Microsoft.Jet.OLEDB.4.0;Data Source= + Application.StartupPath + @ \\origin.mdb;Persist Security Info=False; String Cns1 = @Provider=Microsoft.Jet.OLEDB.4.0;Data Source= + Application.StartupPath + @ \\destination.mdb;Persist Security Info=False; OleDbConnection myConnection; OleDbCommand myCommand; public Form1() { InitializeComponent(); myConnection = new OleDbConnection(myConnString); myCommand = myConnection.CreateCommand(); myCommand.Connection = myConnection; } private void Dowork_Click(object sender, EventArgs e) { using (TextWriter temp = new StreamWriter(@c: \\test.txt)) {using (OleDbConnection Cnorig = new OleDbConnection(Cns)) {using (OleDbDataAdapter Adaorigin = new OleDbDataAdapter(Select * from bolle order by progannuo, Cnorig)) {using (OleDbConnection Cndest = new OleDbConnection(Cns1)) {using (OleDbDataAdapter Adadestin = new OleDbDataAdapter(Select * from bolle order by progannuo, Cndest)) {using (DataSet Tborigin = new DataSet(Origin)) {using (OleDbCommandBuilder ob = new OleDbCommandBuilder(Adadestin)) {using (DataSet Tbdestin = new DataSet(Destination)) {ob.SetAllValues = true; Adaorigin.Fill(Tborigin); // We check for null values in the data field of the origin table foreach (System.Data.DataRow rowO in Tborigin.Tables[0].Rows) { if ( rowO.IsNull(4))rowO[4] = DateTime.MaxValue; // Warning: Minvalue doesn \'t work in oledb provider } Adadestin.Fill(Tbdestin); // We check for null values in the data field of the destination table foreach (System.Data.DataRow rowD in Tbdestin.Tables[0].Rows) { if (rowD.IsNull(4)) rowD[4] = DateTime.MaxValue; // Warning: Minvalue doesn \'t work in oledb provider } bool myflag = false; DataRowComparerX&lt;DataRow&gt; cmp = new DataRowComparerX&lt;DataRow&gt;(); foreach (System.Data.DataRow row1 in Tborigin.Tables[0].Rows) { myflag = false; foreach (System.Data.DataRow row2 in Tbdestin.Tables[0].Rows) {if (cmp.Equals(row1, row2)) { myflag = true; break; } } if (myflag == false) { //Tbdestin.Tables[0].ImportRow(row1); // or alternatively the following DataRow beta = Tbdestin.Tables[0].NewRow(); beta.ItemArray = row1.ItemArray; Tbdestin.Tables[0].Rows.Add(beta); } } /*Tbdestin.Tables[0].AcceptChanges(); If it is called the update fails * When invoking AcceptChanges, any DataRow object still in edit-mode successfully ends * its edit. The RowState property of each DataRow also changes; Added and Modified rows * become Unchanged, and Deleted rows are removed.*/ DataTable result = new DataTable(Result); result = Tbdestin.Tables[0].GetChanges(DataRowState.Added); Adadestin.Update(Tbdestin.Tables[0]); int q = Tbdestin.Tables[0].Rows.Count; dataGridView1.DataSource = Tbdestin.Tables[0]; temp.Close(); } } } } } } } } } } // ************* THE FOLLOWING is A FIX FOR Visual Studio 2008 taken care of in Visual Studio 2010 ORCAS public class DataRowComparerX&lt;TDataRow&gt; : IEqualityComparer&lt;TDataRow&gt; where TDataRow : DataRow { public bool Equals(TDataRow x, TDataRow y) { return DataRowComparer.Default.Equals(x, y); } public int GetHashCode(TDataRow obj) { return DataRowComparer.Default.GetHashCode(obj); } } //********************************************************************************************************* } Home Index ",13);arrFiles[85]=new Array(86,"Blog/firemethods.html","6 Jan 2009","C# in deep. how to fire methods that belong to controls in a Windows Form","","","Home Index DMM C# Reference the power of DELEGATES when needed to fire methods via code Sometimes it could be useful to be able to fire methods that belong to controls in a Windows Form. Let \'s see the following schema and solution. Download C# code C++.NET Code Obviously what we want is to make it in a way, that once we press the main button in the above form, the three methods that belongs to the numbered buttons be fired in the due order 1-&gt; 2-&gt;3. In our case we show three message boxes that witness the exact order of firing. The following code in C# creates an array of delegates, and use it to fire methods based on the tabindex propertiy of the buttons. Let \'s say for example that the three buttons have the value of tabindex equal to 10,11,12. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Delegate { public partial class Form1 : Form { public delegate void DEL(object x,EventArgs y); // The delegate signature must be the // same of the button press EG: btnJob1_Click(object sender, EventArgs e) public DEL[] delarray; public Form1() { delarray = new DEL[3]; // Delegate array creation and instantiation delarray[0] = new DEL(btnJob1_Click); delarray[1] = new DEL(btnJob2_Click); delarray[2] = new DEL(btnJob3_Click); InitializeComponent(); } private void button4_Click(object sender, EventArgs e) { // The three buttons we want to fire their methods have tabindex properties = 10,11,12 for (int n = 10; n &lt; 13; ++n) // We cobnsider the tabindex properties of the controls { foreach (Control ctrl in Controls) { if (ctrl.TabIndex == n) { ctrl.BackColor = Color.Gray; this.Refresh(); // The invoke method fire fire the method of the button // whose tabindex property corresponds to n ctrl.Invoke(delarray[n-10], new object[] { null, null }); } } } } private void btnJob1_Click(object sender, EventArgs e) { MessageBox.Show(First Task Performed); } private void btnJob2_Click(object sender, EventArgs e) { MessageBox.Show(Second Task Performed); } private void btnJob3_Click(object sender, EventArgs e) { MessageBox.Show(Third Task Performed); } } } C++.NET code for the same example #pragma once namespace DelegateCpp { using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; using namespace System::Windows::Forms; /// &lt;summary&gt; /// Summary for DelegateSample /// /// WARNING: If you change the name of this class, you will need to change the ///  \'Resource File Name \' property for the managed resource compiler tool /// associated with all .resx files this class depends on. Otherwise, /// the designers will not be able to interact properly with localized /// resources associated with this form. /// &lt;/summary&gt; public ref class DelegateSample : public System::Windows::Forms::Form { public: delegate void DEL(System::Object ^ sender, System::EventArgs^ e); public: array &lt;DEL^,1&gt; ^ delarray; DelegateSample(void) { InitializeComponent(); delarray = gcnew array &lt;DEL^,1&gt;(3); delarray[0] = gcnew DEL(this,&amp;DelegateSample::btnJob1_Click); delarray[1] = gcnew DEL(this,&amp;DelegateSample::btnJob2_Click); delarray[2] = gcnew DEL(this,&amp;DelegateSample::btnJob3_Click); } protected: /// &lt;summary&gt; /// Clean up any resources being used. /// &lt;/summary&gt; ~DelegateSample() { if (components) { delete components; } } private: System::Windows::Forms::Button^ button4; protected: private: System::Windows::Forms::Button^ btnJob3; private: System::Windows::Forms::Button^ btnJob2; private: System::Windows::Forms::Button^ btnJob1; private: /// &lt;summary&gt; /// Required designer variable. /// &lt;/summary&gt; System::ComponentModel::Container ^components; #pragma region Windows Form Designer generated code /// &lt;summary&gt; /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// &lt;/summary&gt; void InitializeComponent(void) { this-&gt;button4 = (gcnew System::Windows::Forms::Button()); this-&gt;btnJob3 = (gcnew System::Windows::Forms::Button()); this-&gt;btnJob2 = (gcnew System::Windows::Forms::Button()); this-&gt;btnJob1 = (gcnew System::Windows::Forms::Button()); this-&gt;SuspendLayout(); // // button4 // this-&gt;button4-&gt;Location = System::Drawing::Point(123, 123); this-&gt;button4-&gt;Name = Lbutton4; this-&gt;button4-&gt;Size = System::Drawing::Size(98, 23); this-&gt;button4-&gt;TabIndex = 13; this-&gt;button4-&gt;Text = LDoThreeJobs; this-&gt;button4-&gt;UseVisualStyleBackColor = true; this-&gt;button4-&gt;Click += gcnew System::EventHandler(this, &amp;DelegateSample::button4_Click); // // btnJob3 // this-&gt;btnJob3-&gt;Location = System::Drawing::Point(227, 39); this-&gt;btnJob3-&gt;Name = LbtnJob3; this-&gt;btnJob3-&gt;Size = System::Drawing::Size(75, 23); this-&gt;btnJob3-&gt;TabIndex = 12; this-&gt;btnJob3-&gt;Text = LJob3; this-&gt;btnJob3-&gt;UseVisualStyleBackColor = true; this-&gt;btnJob3-&gt;Click += gcnew System::EventHandler(this, &amp;DelegateSample::btnJob3_Click); // // btnJob2 // this-&gt;btnJob2-&gt;Location = System::Drawing::Point(133, 39); this-&gt;btnJob2-&gt;Name = LbtnJob2; this-&gt;btnJob2-&gt;Size = System::Drawing::Size(75, 23); this-&gt;btnJob2-&gt;TabIndex = 11; this-&gt;btnJob2-&gt;Text = LJob2; this-&gt;btnJob2-&gt;UseVisualStyleBackColor = true; this-&gt;btnJob2-&gt;Click += gcnew System::EventHandler(this, &amp;DelegateSample::btnJob2_Click); // // btnJob1 // this-&gt;btnJob1-&gt;Location = System::Drawing::Point(43, 39); this-&gt;btnJob1-&gt;Name = LbtnJob1; this-&gt;btnJob1-&gt;Size = System::Drawing::Size(75, 23); this-&gt;btnJob1-&gt;TabIndex = 10; this-&gt;btnJob1-&gt;Text = LJob1; this-&gt;btnJob1-&gt;UseVisualStyleBackColor = true; this-&gt;btnJob1-&gt;Click += gcnew System::EventHandler(this, &amp;DelegateSample::btnJob1_Click); // // DelegateSample // this-&gt;AutoScaleDimensions = System::Drawing::SizeF(6, 13); this-&gt;AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; this-&gt;ClientSize = System::Drawing::Size(353, 191); this-&gt;Controls-&gt;Add(this-&gt;button4); this-&gt;Controls-&gt;Add(this-&gt;btnJob3); this-&gt;Controls-&gt;Add(this-&gt;btnJob2); this-&gt;Controls-&gt;Add(this-&gt;btnJob1); this-&gt;Name = LDelegateSample; this-&gt;Text = LDelegateSample; this-&gt;ResumeLayout(false); } #pragma endregion private: System::Void btnJob1_Click(System::Object^ sender, System::EventArgs^ e) { MessageBox::Show(First Task Performed); } private : static void f(int) {} private: System::Void btnJob2_Click(System::Object^ sender, System::EventArgs^ e) { MessageBox::Show(Second Task Performed); } private: System::Void btnJob3_Click(System::Object^ sender, System::EventArgs^ e) { MessageBox::Show(Third Task Performed);} private: System::Void button4_Click(System::Object^ sender, System::EventArgs^ e) { for (int n = 10; n &lt; 13; ++n) { for each (Control ^ ctrl in this-&gt;Controls) { if (ctrl-&gt;TabIndex == n) { ctrl-&gt;BackColor = Color::Gray; this-&gt;Refresh(); ctrl-&gt;Invoke(delarray[n-10], gcnew array &lt;Object^&gt; { nullptr, nullptr }); } } } } }; } Home Index ",19);arrFiles[86]=new Array(87,"Blog/messagefilter.html","30 Oct 2008","Message Filtering in C#","","","Home Index DMM C# Reference IMessageFilter Sometimes could be useful to avoid a specific event in a Windows Forms to be processed: for example we would disable mouse click on the client area of the form or maybe disable the entire form in order to perform a task without being bored by the user interaction. Here comes a nice class inheriting IMessageFilter . The code below shows the implementation of the class that allows to filter whatsoever message pumped to a Windows Forms. There are other constants that weren \'t written in the code and can be found in winuser.h Download Sample solution for MessageFilter Sample using System.Collections.Generic; using System; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Threading; namespace MessageFiltering { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } private void btnblocker_Click(object sender, EventArgs e) { TestMessageFilter blocker = new TestMessageFilter(this.Handle); Application.AddMessageFilter(blocker); Thread.Sleep(5000); Application.RemoveMessageFilter(blocker); } } public class TestMessageFilter : IMessageFilter { const int WM_LBUTTONDOWN = 0x201; const int WM_LBUTTONUP = 0x202; const int WM_CTLCOLORMSGBOX = 0x0132; const int WM_CTLCOLOREDIT = 0x0133; const int WM_CTLCOLORLISTBOX = 0x0134; const int WM_CTLCOLORBTN = 0x0135; const int WM_CTLCOLORDLG = 0x0136; const int WM_CTLCOLORSCROLLBAR = 0x0137; const int WM_CTLCOLORSTATIC = 0x0138; const int MN_GETHMENU = 0x01E1; const int WM_MOUSEFIRST = 0x0200; const int WM_MOUSEMOVE = 0x0200; const int WM_LBUTTONDBLCLK = 0x0203; const int WM_RBUTTONDOWN = 0x0204; const int WM_RBUTTONUP = 0x0205; const int WM_RBUTTONDBLCLK = 0x0206; const int WM_MBUTTONDOWN = 0x0207; const int WM_MBUTTONUP = 0x0208; const int WM_MBUTTONDBLCLK = 0x0209; const int WM_MOUSELAST = 0x0209; const int WM_SETFOCUS = 0x0007; const int WM_NCHITTEST = 0x0084; const int WM_NCPAINT = 0x0085; const int WM_ACTIVATE = 0x0006; const int WM_MOUSEACTIVATE = 0x0021; const int WM_DESTROY = 0x0002; const int WM_MOVE = 0x0003; const int WM_SIZE = 0x0005; const int WA_INACTIVE = 0; const int WA_ACTIVE = 1; const int WA_CLICKACTIVE = 2; const int WM_KILLFOCUS = 0x0008; const int WM_ENABLE = 0x000A; const int WM_SETREDRAW = 0x000B; const int WM_SETTEXT = 0x000C; const int WM_GETTEXT = 0x000D; const int WM_GETTEXTLENGTH = 0x000E; const int WM_PAINT = 0x000F; const int WM_CLOSE = 0x0010; const int WM_ENTERSIZEMOVE = 0x0231; const int WM_SIZING = 0x0214; private IntPtr redirectHandle = IntPtr.Zero; public TestMessageFilter(IntPtr redirectHandle) { this.redirectHandle = redirectHandle; } public bool PreFilterMessage(ref Message m) { //Blocks all the messages relating to the left mouse button. if (m.Msg == WM_LBUTTONDOWN) { Console.WriteLine(The left mouse button is down.); return true; } if (m.Msg == WM_LBUTTONUP) { Console.WriteLine(The left mouse button is down.); return true; } // The following blocks all messages if (this.redirectHandle == m.HWnd) { return true; } return false; } } } This strategy can be used instead of disabling a Form setting the enabled property of it to false because we don \'t degrade the form appearance and the colors don \'t fade. There are other needs that such technique could satisfy, for example let an internal processor consuming task be free not to interact with time consuming message pump. However it must be kept in mind (Microsoft specific) that using Message Filtering can degrade performance so it \'s better use it wisely and with an open eye to Microsoft Documentation . Home Index ",13);arrFiles[87]=new Array(88,"Blog/nullabletypes.html","3 Nov 2008","Nullable Types and conversion between nullable types","","","Home Index DMM C# Reference NULLABLE TYPES Since the advent of .NET Framework 2.0 , Microsoft has presented  the nullable types. They can be declared as follows: System.Nullable&lt;decimal&gt;alfa; System.Nullable&lt;Int16&gt;  beta; System.Nullable&lt;double&gt; gamma; System.Nullable&lt;Single&gt; teta; System.Nullable&lt;Int32&gt; omega; System.Nullable&lt;bool&gt; delta; .......... ....... They admit all the values in the range of their corresponding integral types but they also accept the null value. However Microsoft has confirmed that using the .NET Framework \'s Convert.ChangeType method doesn \'t handle nullable types. Until it does, here \'s a Convert.ChangeType wrapper you can use that does handle them. public static object ChangeType(object value, Type conversionType) {           if (conversionType == null) { throw new ArgumentNullException(conversionType); } if (conversionType.IsGenericType &amp;&amp; conversionType.GetGenericTypeDefinition().Equals(typeof(Nullable&lt;&gt;))) {                       if (value == null) { return null; }                                              NullableConverter nullableConverter = new NullableConverter(conversionType); conversionType = nullableConverter.UnderlyingType; }                 return Convert.ChangeType(value, conversionType); } If we insert this method in our class we can handle correctly the conversion: For example: System.Nullable&lt;decimal&gt; alfa = 78.23m;  System.Nullable&lt;Int16&gt; j = (System.Nullable &lt; Int16 &gt; )ChangeType(alfa, typeof(System.Nullable&lt;Int16&gt;)); // j=78 System.Nullable&lt;decimal&gt; beta = null; System.Nullable&lt;Int16&gt; w = (System.Nullable&lt;Int16&gt;)ChangeType(beta, typeof(System.Nullable&lt;Int16&gt;)); //w = null; Home Index ",10);arrFiles[88]=new Array(89,"blog/linuxblog0.html","21 Jan 2008","Linux C++ Reference by DMM","","","It \'s better not to upgrade glibc, rather try OpenSuse 10.3 Just on January 19 2008 I decided to install a piece of code coming from sourceforge.net and as soon as I installed the rpm an error issued saying that a more updated version of glibc was due; let’s say version 2.5 minimum compared to the currently installed on my Linux Suse 10.0 distribution. So I decided to download a more recent version of glibc and I did so, but after 2 hours of careful study I decided to quit the update because of serious risks resulting in system instability. The common advice I received from the Internet was the wiser one to consider a more updated distribution of Linux, Let’s say the 10.3 or try with the opensuse project. This small event can teach again an important rule: before committing partial updates one must think twice. Home Index LINUX Suse 10 and Eclipse for C++ development. Sockets and Thread in hands with the correct approach ",8);arrFiles[89]=new Array(90,"Blog/ftpoperations.html","11 Jan 2010","Main Ftp Operations using FtpWebRequest .Net object","","","Home Index DMM C# Reference FtpWebRequest object To perform ftp operations it is of great help the FtpWebRequest object of the System.Net namespace // First example: Create a Directory FtpWebRequest myftprequest = (FtpWebRequest)FtpWebRequest.Create(ftp://ftp.eeee.it/eeee.it/mdb-database/backup + (System.DateTime.Now.Year - 100).ToString()); myftprequest.Credentials = new NetworkCredential(username, password); myftprequest.Method = WebRequestMethods.Ftp.MakeDirectory; FtpWebResponse resp; resp = (FtpWebResponse )myftprequest.GetResponse(); MessageBox.Show(resp.StatusDescription); resp.Close(); // Second Example Delete a file // Example: ftp://contoso.com/filetodelete.txt FtpWebRequest myftprequest1 = (FtpWebRequest)WebRequest.Create(ftp://ftp.eeee.it/eeee.it/myfile.docx); myftprequest1.Credentials = new NetworkCredential(username, password); myftprequest1.Method = WebRequestMethods.Ftp.DeleteFile; FtpWebResponse resp1 = (FtpWebResponse)myftprequest1.GetResponse(); MessageBox.Show(resp1.StatusDescription); resp1.Close(); // Third example in a console application more complex: Upload a file using System; using System.Net; using System.Threading; using System.IO; namespace Examples.System.Net { public class FtpState { private ManualResetEvent wait; private FtpWebRequest request; private string fileName; private Exception operationException = null; string status; public FtpState() { wait = new ManualResetEvent(false); } public ManualResetEvent OperationComplete { get { return wait; } } public FtpWebRequest Request { get { return request; } set { request = value; } } public string FileName { get { return fileName; } set { fileName = value; } } public Exception OperationException { get { return operationException; } set { operationException = value; } } public string StatusDescription { get { return status; } set { status = value; } } } public class AsynchronousFtpUpLoader { // Command line arguments are two strings: // 1. The url that is the name of the file being uploaded to the server. // 2. The name of the file on the local machine. // public static void Main(string[] args) { // Create a Uri instance with the specified URI string. // If the URI is not correctly formed, the Uri constructor // will throw an exception. ManualResetEvent waitObject; Uri target = new Uri(args[0]); string fileName = args[1]; FtpState state = new FtpState(); FtpWebRequest request = (FtpWebRequest)WebRequest.Create(target); request.Method = WebRequestMethods.Ftp.UploadFile; // This example uses anonymous logon. // The request is anonymous by default; the credential does not have to be specified. // The example specifies the credential only to // control how actions are logged on the server. request.Credentials = new NetworkCredential(anonymous, janeDoe@contoso.com); // Store the request in the object that we pass into the // asynchronous operations. state.Request = request; state.FileName = fileName; // Get the event to wait on. waitObject = state.OperationComplete; // Asynchronously get the stream for the file contents. request.BeginGetRequestStream( new AsyncCallback(EndGetStreamCallback), state ); // Block the current thread until all operations are complete. waitObject.WaitOne(); // The operations either completed or threw an exception. if (state.OperationException != null) { throw state.OperationException; } else { Console.WriteLine(The operation completed - {0}, state.StatusDescription); } } private static void EndGetStreamCallback(IAsyncResult ar) { FtpState state = (FtpState)ar.AsyncState; Stream requestStream = null; // End the asynchronous call to get the request stream. try { requestStream = state.Request.EndGetRequestStream(ar); // Copy the file contents to the request stream. const int bufferLength = 2048; byte[] buffer = new byte[bufferLength]; int count = 0; int readBytes = 0; FileStream stream = File.OpenRead(state.FileName); do { readBytes = stream.Read(buffer, 0, bufferLength); requestStream.Write(buffer, 0, readBytes); count += readBytes; } while (readBytes != 0); Console.WriteLine(Writing {0} bytes to the stream., count); // IMPORTANT: Close the request stream before sending the request. requestStream.Close(); // Asynchronously get the response to the upload request. state.Request.BeginGetResponse( new AsyncCallback(EndGetResponseCallback), state ); } // Return exceptions to the main application thread. catch (Exception e) { Console.WriteLine(Could not get the request stream.); state.OperationException = e; state.OperationComplete.Set(); return; } } // The EndGetResponseCallback method // completes a call to BeginGetResponse. private static void EndGetResponseCallback(IAsyncResult ar) { FtpState state = (FtpState)ar.AsyncState; FtpWebResponse response = null; try { response = (FtpWebResponse)state.Request.EndGetResponse(ar); response.Close(); state.StatusDescription = response.StatusDescription; // Signal the main application thread that // the operation is complete. state.OperationComplete.Set(); } // Return exceptions to the main application thread. catch (Exception e) { Console.WriteLine(Error getting response.); state.OperationException = e; state.OperationComplete.Set(); } } } } Home Index ",15);arrFiles[90]=new Array(91,"Blog/compilelinux0.html","24 Jan 2008","Linux C++ Reference by DMM","","","Filezilla is a nice ftp client and is under GNU. Home Index Compile Filezilla 3.0.5.2 In this reference we \'ll be follow a line in order to successfully configure, build and install the Ftp Client named  FileZilla ver. 3.0.5.2. First of all we download the source code Filezilla 3.0.5.2 Then we must download wxwidgets wxAll all wxWidgets ports. And then again we have to download Gnutils 2.0.4. We find it Here The first thing to do is to unpack wxwidgets and run ./configure , then make and then make install. The following step is to do the same with Gnutils and the last step is to configure make and make install Filezilla Source code ",7);arrFiles[91]=new Array(92,"blog/pinvoke.html","20 Jul 2008","Going deep into the PInvoke matter ","","","DMM reference for Visual Basic.NET Pinvoke or Platform Invoke in deep Home Index In order to fully understand the PInvoke mechanism it is surely advisable to start from the question: What’s the use of PInvoke? and moreover what are the field of deployment of this tactic? Pinvoke is a way to dialogate between two programming languages in Windows. These two languages can be unmanaged C++ and Visual Basic.Net or unmanaged  C++ and C#. Obviously there are other options that are not touched here for simplicity and because of the fact that the above interaction are widely the most used in Windows programming, we’ll deal with Native Unmanaged C++ -&gt;Visual Basic.Net Native Unmanaged C++-&gt;C# of the .NET It is clear that all the C++ API of Windows are as a result easily accessed by means of the PInvoke strategy.in fact Such API’s are written in C++ unmanaged. The following sample covers the construction of a C++ Dll and the usage of the Pinvoke (Platform Invoke) mechanism to interoperate between unmanaged and managed code. Download the complete sample from here Home Index ",3);arrFiles[92]=new Array(93,"blog/zerolength.html","25 Jul 2008","Trick to allow Zero Length Via Code","","","DMM reference for Visual Basic.NET Trick to allow Zero Length Via Code Home Index The following VB script is a way to allow zero length in a field of a table in Microsoft Access: Please be aware that this script doesn \'t work with ACCESS 2007 Where it is due tu use The New DAO API set cnn = createobject(ADODB.Connection) set cat = CreateObject(ADOX.Catalog) cnn.Open Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C: \\acart.mdb;Persist Security Info=False;Jet OLEDB:Database Password=mypass set cat.ActiveConnection = cnn set tbl = cat.Tables(orders) tbl.Columns(daddress1).Properties(Jet OLEDB:Allow Zero Length) = true  \' false to disallow zero length tbl.Columns(daddress2).Properties(Jet OLEDB:Allow Zero Length) = true tbl.Columns(dstate).Properties(Jet OLEDB:Allow Zero Length) = true tbl.Columns(dcountry).Properties(Jet OLEDB:Allow Zero Length) = true tbl.columns.refresh() set tbl = nothing set cat = nothing set cnn = nothing The above script works as a VBS file as well as a fragment of code inside Visual Basic.Net in which case The appropriate references to ADO and ADOX must be Added and The new keyword must be used instead of Createobject . Home Index ",3);arrFiles[93]=new Array(94,"blog/csharpvsvbnet.html","3 Aug 2008","Important differencies between Vb.NET and C#","","","DMM reference for Visual Basic.NET Important differencies between Vb.NET and C# Home Index VB.NET Program Structure C# Imports System Namespace Hello    Class HelloWorld       Overloads Shared Sub Main (ByVal args() As String)          Dim name As String = VB.NET           \'See if an argument was passed from the command line            If args.Length = 1 Then name = args(0)           Console.WriteLine(Hello, &amp; name &amp; !)       End Sub    End Class End Namespace using System; namespace Hello {    public class HelloWorld {       public static void Main (string[] args) {          string name = C#;          // See if an argument was passed from the command line          if (args.Length == 1)             name = args[0];          Console.WriteLine(Hello, + name + !);       }    } } VB.NET Comments C#  \' Single line only REM  Single line only  \' \' \' &lt;summary&gt;XML comments&lt;/summary&gt; // Single line /* Multiple     line  */ /// &lt;summary&gt;XML comments on single line&lt;/summary&gt; /** &lt;summary&gt;XML comments on multiple lines&lt;/summary&gt; */ VB.NET Data Types C# Value Types Boolean Byte, SByte Char Short, UShort, Integer, UInteger, Long, ULong Single, Double Decimal Date Reference Types Object String Initializing Dim correct As Boolean = True Dim b As Byte = &amp;H2A    \'hex Dim o As Byte = &amp;O52    \'octal Dim person As Object = Nothing Dim name As String = Dwight Dim grade As Char = Bc Dim today As Date = #12/31/2007 12:15:00 PM# Dim amount As Decimal = 35.99@ Dim gpa As Single = 2.9! Dim pi As Double = 3.14159265 Dim lTotal As Long = 123456L Dim sTotal As Short = 123S Dim usTotal As UShort = 123US Dim uiTotal As UInteger = 123UI Dim ulTotal As ULong = 123UL Type Information Dim x As Integer Console.WriteLine(x. GetType ())           \' Prints System.Int32 Console.WriteLine( GetType (Integer))    \' Prints System.Int32 Console.WriteLine( TypeName (x))         \' Prints Integer Type Conversion Dim d As Single = 3.5 Dim i As Integer = CType (d, Integer)    \' set to 4 (Banker \'s rounding) i = CInt (d)   \' same result as CType i = Int (d)     \' set to 3 (Int function truncates the decimal) Value Types bool byte, sbyte char short, ushort, int, uint, long, ulong float, double decimal DateTime   (not a built-in C# type) Reference Types object string Initializing bool correct = true; byte b = 0x2A;   // hex object person = null; string name = Dwight; char grade =  \'B \'; DateTime today = DateTime.Parse(12/31/2007 12:15:00); decimal amount = 35.99m; float gpa = 2.9f; double pi = 3.14159265; long lTotal = 123456L; short sTotal = 123; ushort usTotal = 123; uint uiTotal = 123; ulong ulTotal = 123; Type Information int x; Console.WriteLine(x. GetType ());              // Prints System.Int32 Console.WriteLine( typeof (int));               // Prints System.Int32 Console.WriteLine(x. GetType().Name );   // prints Int32 Type Conversion float d = 3.5f; int i = (int) d;   // set to 3  (truncates decimal) VB.NET Constants C# Const  MAX_STUDENTS As Integer = 25  \' Can set to a const or var; may be initialized in a constructor ReadOnly MIN_DIAMETER As Single = 4.93 const int MAX_STUDENTS = 25; // Can set to a const or var; may be initialized in a constructor readonly float MIN_DIAMETER = 4.93f; VB.NET Enumerations C# Enum Action   Start    [Stop]    \' Stop is a reserved word   Rewind   Forward End Enum Enum  Status   Flunk = 50   Pass = 70   Excel = 90 End Enum Dim a As Action = Action.Stop If a &lt;&gt; Action.Start Then _     Console.WriteLine(a.ToString &amp; is &amp; a)      \' Prints Stop is 1 Console.WriteLine(Status.Pass)      \' Prints 70 Console.WriteLine(Status.Pass.ToString())      \' Prints Pass enum Action {Start, Stop, Rewind, Forward}; enum Status {Flunk = 50, Pass = 70, Excel = 90}; Action a = Action.Stop; if (a != Action.Start)   Console.WriteLine(a + is + (int) a);    // Prints Stop is 1 Console.WriteLine((int) Status.Pass);    // Prints 70 Console.WriteLine(Status.Pass);      // Prints Pass VB.NET Operators C# Comparison =  &lt;  &gt;  &lt;=  &gt;=  &lt;&gt; Arithmetic +  -  *  / Mod  \\  (integer division) ^  (raise to a power) Assignment =  +=  -=  *=  /=   \\=  ^=  &lt;&lt;=  &gt;&gt;=  &amp;= Bitwise And   Or   Xor   Not   &lt;&lt;   &gt;&gt; Logical AndAlso   OrElse   And   Or   Xor   Not Note: AndAlso and OrElse perform short-circuit logical evaluations String Concatenation &amp; Comparison ==  &lt;  &gt;  &lt;=  &gt;=  != Arithmetic +  -  *  / %  (mod) /  (integer division if both operands are ints) Math.Pow(x, y) Assignment =  +=  -=  *=  /=   %=  &amp;=  |=  ^=  &lt;&lt;=  &gt;&gt;=  ++  -- Bitwise &amp;   |   ^   ~   &lt;&lt;   &gt;&gt; Logical &amp;&amp;   ||   &amp;   |   ^   ! Note: &amp;&amp; and || perform short-circuit logical evaluations String Concatenation + VB.NET Choices C# greeting = IIf (age &lt; 20, What \'s up?, Hello)  \' One line doesn \'t require End If If age &lt; 20 Then greeting = What \'s up? If age &lt; 20 Then greeting = What \'s up? Else greeting = Hello  \' Use : to put two commands on same line If x &lt;&gt; 100 And y &lt; 5 Then x *= 5 : y *= 2    \' Preferred If x &lt;&gt; 100 And y &lt; 5 Then   x *= 5   y *= 2 End If  \' To break up any long single line use _ If whenYouHaveAReally &lt; longLine And _   itNeedsToBeBrokenInto2 &gt; Lines  Then _   UseTheUnderscore(charToBreakItUp)  \' If x &gt; 5 Then   x *= y ElseIf  x = 5 Then   x += y ElseIf x &lt; 10 Then   x -= y Else   x /= y End If Select Case color    \' Must be a primitive data type   Case pink, red     r += 1   Case blue     b += 1   Case green     g += 1   Case Else     other += 1 End Select greeting = age &lt; 20 ? What \'s up? : Hello; if (age &lt; 20)   greeting = What \'s up?; else   greeting = Hello; // Multiple statements must be enclosed in {} if (x != 100 &amp;&amp; y &lt; 5) {      x *= 5;   y *= 2; } No need for _ or : since ; is used to terminate each statement. if (x &gt; 5)   x *= y; else if (x == 5)   x += y; else if (x &lt; 10)   x -= y; else   x /= y; // Every case must end with break or goto case switch (color) {                          // Must be integer or string   case pink:   case red:    r++;    break;   case blue:   b++;   break;   case green: g++;   break;   default:     other++;   break;       // break necessary on default } VB.NET Loops C# Pre-test Loops: While c &lt; 10   c += 1 End While Do Until c = 10    c += 1 Loop Do While c &lt; 10   c += 1 Loop For c = 2 To 10 Step 2   Console.WriteLine(c) Next Post-test Loops: Do     c += 1 Loop While c &lt; 10 Do     c += 1 Loop Until c = 10  \'  Array or collection looping Dim names As String() = {Fred, Sue, Barney} For Each s As String  In names   Console.WriteLine(s) Next  \' Breaking out of loops Dim i As Integer = 0 While (True)   If (i = 5) Then Exit While   i += 1 End While  \' Continue to next iteration For i = 0 To 4   If i &lt; 4 Then Continue For   Console.WriteLine(i)    \' Only prints 4 Next Pre-test Loops:   // no until keyword while (c &lt; 10)   c++; for (c = 2; c &lt;= 10; c += 2)   Console.WriteLine(c); Post-test Loop: do   c++; while (c &lt; 10); // Array or collection looping string[] names = {Fred, Sue, Barney}; foreach (string s in names)   Console.WriteLine(s); // Breaking out of loops int i = 0; while (true) {   if (i == 5)     break;   i++; } // Continue to next iteration for (i = 0; i &lt; 5; i++) {   if (i &lt; 4)     continue;   Console.WriteLine(i);   // Only prints 4 } VB.NET Arrays C# Dim nums () As Integer = {1, 2, 3}  For i As Integer = 0 To nums.Length - 1   Console.WriteLine(nums(i)) Next  \' 4 is the index of the last element, so it holds 5 elements Dim names(4) As String names(0) = David names(5) = Bobby   \' Throws System.IndexOutOfRangeException  \' Resize the array, keeping the existing values (Preserve is optional) ReDim Preserve names(6) Dim twoD(rows-1, cols-1) As Single twoD(2, 0) = 4.5 Dim jagged ()() As Integer = { _   New Integer(4) {}, New Integer(1) {}, New Integer(2) {} } jagged(0)(4) = 5 int [] nums = {1, 2, 3}; for (int i = 0; i &lt; nums.Length; i++)   Console.WriteLine(nums[i]); // 5 is the size of the array string[] names = new string[5]; names[0] = David; names[5] = Bobby;   // Throws System.IndexOutOfRangeException // C# can \'t dynamically resize an array.  Just copy into new array. string[] names2 = new string[7]; Array.Copy(names, names2, names.Length);   // or names.CopyTo(names2, 0);  float [,] twoD = new float[rows, cols]; twoD[2,0] = 4.5f;  int [][] jagged = new int[3][] {   new int[5], new int[2], new int[3] }; jagged[0][4] = 5; VB.NET Functions C#  \' Pass by value (in, default), reference (in/out), and reference (out)  Sub TestFunc( ByVal x As Integer, ByRef y As Integer, ByRef z As Integer)   x += 1   y += 1   z = 5 End Sub Dim a = 1, b = 1, c As Integer    \' c set to zero by default  TestFunc(a, b, c) Console.WriteLine({0} {1} {2}, a, b, c)    \' 1 2 5  \' Accept variable number of arguments Function Sum(ByVal ParamArray nums As Integer()) As Integer   Sum = 0    For Each i As Integer In nums     Sum += i   Next End Function     \' Or use Return statement like C# Dim total As Integer = Sum(4, 3, 2, 1)    \' returns 10  \' Optional parameters must be listed last and must have a default value Sub SayHello(ByVal name As String, Optional ByVal prefix As String = )    Console.WriteLine(Greetings, &amp; prefix &amp; &amp; name) End Sub SayHello(Strangelove, Dr.) SayHello(Madonna) // Pass by value (in, default), reference (in/out), and reference (out) void TestFunc(int x, ref int y, out int z) {   x++;     y++;   z = 5; } int a = 1, b = 1, c;  // c doesn \'t need initializing TestFunc(a, ref b, out c); Console.WriteLine({0} {1} {2}, a, b, c);  // 1 2 5 // Accept variable number of arguments int Sum( params int[] nums) {   int sum = 0;   foreach (int i in nums)     sum += i;   return sum; } int total = Sum(4, 3, 2, 1);   // returns 10 /* C# doesn \'t support optional arguments/parameters.  Just create two different versions of the same function. */  void SayHello(string name, string prefix) {   Console.WriteLine(Greetings, + prefix + + name); }  void SayHello(string name) {   SayHello(name, ); } VB.NET Strings C# Special character constants vbCrLf, vbCr, vbLf, vbNewLine vbNullString vbTab vbBack vbFormFeed vbVerticalTab  \' String concatenation (use &amp; or +) Dim school As String = Harding &amp; vbTab school = school &amp; University  \' school is Harding (tab) University  \' Chars Dim letter As Char = school.Chars(0)    \' letter is H letter = Convert.ToChar(65)                 \' letter is A letter = Chr (65)                                  \' same thing Dim word() As Char = school.ToCharArray()  \' word holds Harding  \' No string literal operator  Dim msg As String = File is c: \\temp \\x.dat   \' String comparison Dim mascot As String = Bisons If (mascot = Bisons) Then    \' true If (mascot. Equals (Bisons)) Then    \' true If (mascot. ToUpper (). Equals (BISONS)) Then   \' true If (mascot. CompareTo (Bisons) = 0) Then    \' true Console.WriteLine(mascot.Substring(2, 3))  \' Prints son  \' String matching If (John 3:16 Like Jo[Hh]? #:*) Then    \'true Imports System.Text.RegularExpressions    \' More powerful than Like Dim r As New Regex (Jo[hH].  \\d:*) If (r.Match(John 3:16).Success) Then    \'true  \' My birthday: Oct 12, 1973 Dim dt As New DateTime(1973, 10, 12) Dim s As String = My birthday: &amp; dt.ToString(MMM dd, yyyy)  \' Mutable string Dim buffer As New System.Text. StringBuilder (two ) buffer.Append(three ) buffer.Insert(0, one ) buffer.Replace(two, TWO) Console.WriteLine(buffer)          \' Prints one TWO three Escape sequences  \\r    // carriage-return  \\n    // line-feed  \\t    // tab  \\ \\    // backslash  \\    // quote // String concatenation string school = Harding \\t; school = school + University;   // school is Harding (tab) University // Chars char letter = school[0];            // letter is H letter = Convert.ToChar(65);     // letter is A letter = (char) 65;                    // same thing char[] word = school.ToCharArray();   // word holds Harding // String literal string msg = @ File is c: \\temp \\x.dat; // same as string msg = File is c: \\ \\temp \\ \\x.dat; // String comparison string mascot = Bisons; if (mascot == Bisons)    // true if (mascot. Equals (Bisons))   // true if (mascot. ToUpper (). Equals (BISONS))   // true if (mascot. CompareTo (Bisons) == 0)    // true Console.WriteLine(mascot. Substring (2, 3));    // Prints son // String matching // No Like equivalent - use regular expressions using System.Text.RegularExpressions; Regex r = new Regex (@Jo[hH].  \\d:*); if (r.Match(John 3:16).Success)   // true // My birthday: Oct 12, 1973 DateTime dt = new DateTime(1973, 10, 12); string s = My birthday: + dt.ToString(MMM dd, yyyy); // Mutable string System.Text. StringBuilder buffer = new System.Text. StringBuilder (two ); buffer. Append (three ); buffer. Insert (0, one ); buffer. Replace (two, TWO); Console.WriteLine(buffer);     // Prints one TWO three VB.NET Exception Handling C#  \' Throw an exception Dim ex As New Exception(Something is really wrong.) Throw  ex   \' Catch an exception Try     y = 0   x = 10 / y Catch ex As Exception  When y = 0  \' Argument and When is optional   Console.WriteLine(ex.Message) Finally   Beep() End Try  \' Deprecated unstructured error handling On Error GoTo MyErrorHandler ... MyErrorHandler: Console.WriteLine(Err.Description) // Throw an exception Exception up = new Exception(Something is really wrong.); throw up;  // ha ha // Catch an exception try {    y = 0;   x = 10 / y; } catch (Exception ex) {   // Argument is optional, no When keyword    Console.WriteLine(ex.Message); } finally {   // Requires reference to the Microsoft.VisualBasic.dll   // assembly (pre .NET Framework v2.0)   Microsoft.VisualBasic.Interaction.Beep(); } VB.NET Namespaces C# Namespace Harding.Compsci.Graphics    ... End Namespace  \' or Namespace Harding   Namespace Compsci     Namespace Graphics        ...     End Namespace   End Namespace End Namespace Imports Harding.Compsci.Graphics namespace Harding.Compsci.Graphics {   ... } // or namespace Harding {   namespace Compsci {     namespace Graphics {       ...     }   } } using Harding.Compsci.Graphics; VB.NET Classes / Interfaces C# Accessibility keywords Public Private Friend                    Protected Protected Friend Shared  \' Inheritance Class  FootballGame   Inherits  Competition   ... End Class    \' Interface definition Interface IAlarmClock    ... End Interface // Extending an interface  Interface IAlarmClock   Inherits IClock   ... End Interface // Interface implementation Class WristWatch    Implements IAlarmClock, ITimer     ... End Class   Accessibility keywords public private internal // Internal types or members are accessible only within files in the same assembly, as in this example: internal class BaseClass { public static int intM = 0; } // Only accessible within the same assembly protected protected internal static // Inheritance class  FootballGame : Competition {   ... } // Interface definition interface IAlarmClock {   ... } // Extending an interface  interface IAlarmClock : IClock {   ... } // Interface implementation class WristWatch : IAlarmClock, ITimer {    ... } VB.NET Constructors / Destructors C# Class SuperHero   Private _powerLevel As Integer   Public Sub New ()     _powerLevel = 0   End Sub   Public Sub New (ByVal powerLevel As Integer)     Me._powerLevel = powerLevel   End Sub   Protected Overrides Sub Finalize ()       \' Desctructor code to free unmanaged resources     MyBase.Finalize()   End Sub End Class class SuperHero {   private int _powerLevel;   public SuperHero() {       _powerLevel = 0;   }   public SuperHero(int powerLevel) {     this._powerLevel= powerLevel;    }   ~ SuperHero() {     // Destructor code to free unmanaged resources.     // Implicitly creates a Finalize method   } } VB.NET Using Objects C# Dim hero As SuperHero = New SuperHero  \' or Dim hero As New SuperHero With hero   .Name = SpamMan   .PowerLevel = 3 End With hero.Defend(Laura Jones) hero.Rest()      \' Calling Shared method  \' or SuperHero.Rest() Dim hero2 As SuperHero = hero   \' Both reference the same object hero2.Name = WormWoman Console.WriteLine(hero.Name)    \' Prints WormWoman hero = Nothing     \' Free the object If hero Is Nothing Then _   hero = New SuperHero Dim obj As Object = New SuperHero If TypeOf obj Is SuperHero Then _   Console.WriteLine(Is a SuperHero object.)  \' Mark object for quick disposal Using reader As StreamReader = File.OpenText(test.txt)   Dim line As String = reader.ReadLine()   While Not line Is Nothing     Console.WriteLine(line)     line = reader.ReadLine()   End While End Using SuperHero hero = new SuperHero(); // No With construct hero.Name = SpamMan; hero.PowerLevel = 3; hero.Defend(Laura Jones); SuperHero.Rest();   // Calling static method SuperHero hero2 = hero;   // Both reference the same object hero2.Name = WormWoman; Console.WriteLine(hero.Name);   // Prints WormWoman hero = null ;   // Free the object if (hero == null )   hero = new SuperHero(); Object obj = new SuperHero();  if (obj is SuperHero)   Console.WriteLine(Is a SuperHero object.); // Mark object for quick disposal using (StreamReader reader = File.OpenText(test.txt)) {   string line;   while ((line = reader.ReadLine()) != null)     Console.WriteLine(line); } VB.NET Structs C# Structure StudentRecord   Public name As String   Public gpa As Single   Public Sub New(ByVal name As String, ByVal gpa As Single)     Me.name = name     Me.gpa = gpa   End Sub End Structure Dim stu As StudentRecord = New StudentRecord(Bob, 3.5) Dim stu2 As StudentRecord = stu   stu2.name = Sue Console.WriteLine(stu.name)     \' Prints Bob Console.WriteLine(stu2.name)   \' Prints Sue struct StudentRecord {   public string name;   public float gpa;   public StudentRecord(string name, float gpa) {     this.name = name;     this.gpa = gpa;   } } StudentRecord stu = new StudentRecord(Bob, 3.5f); StudentRecord stu2 = stu;   stu2.name = Sue; Console.WriteLine(stu.name);    // Prints Bob Console.WriteLine(stu2.name);   // Prints Sue VB.NET Properties C# Private _size As Integer Public Property Size() As Integer   Get      Return _size   End Get   Set (ByVal Value As Integer)     If Value &lt; 0 Then       _size = 0     Else       _size = Value     End If   End Set End Property foo.Size += 1 private int _size; public int Size {   get {     return _size;   }   set {     if (value &lt; 0)       _size = 0;     else       _size = value;   } } foo.Size++; VB.NET Delegates / Events C# Delegate Sub MsgArrivedEventHandler(ByVal message As String) Event MsgArrivedEvent As MsgArrivedEventHandler  \' or to define an event which declares a delegate implicitly Event MsgArrivedEvent(ByVal message As String) AddHandler MsgArrivedEvent, AddressOf My_MsgArrivedCallback  \' Won \'t throw an exception if obj is Nothing RaiseEvent MsgArrivedEvent(Test message) RemoveHandler MsgArrivedEvent, AddressOf My_MsgArrivedCallback Imports System.Windows.Forms Dim WithEvents MyButton As Button    \' WithEvents can \'t be used on local variable MyButton = New Button Private Sub MyButton_Click(ByVal sender As System.Object, _   ByVal e As System.EventArgs) Handles MyButton.Click   MessageBox.Show(Me, Button was clicked, Info, _     MessageBoxButtons.OK, MessageBoxIcon.Information) End Sub delegate void MsgArrivedEventHandler(string message); event MsgArrivedEventHandler MsgArrivedEvent; // Delegates must be used with events in C# MsgArrivedEvent += new MsgArrivedEventHandler(My_MsgArrivedEventCallback); MsgArrivedEvent(Test message);    // Throws exception if obj is null MsgArrivedEvent -= new MsgArrivedEventHandler(My_MsgArrivedEventCallback); using System.Windows.Forms; Button MyButton = new Button();  MyButton.Click += new System.EventHandler(MyButton_Click); private void MyButton_Click(object sender, System.EventArgs e) {   MessageBox.Show(this, Button was clicked, Info,     MessageBoxButtons.OK, MessageBoxIcon.Information); } VB.NET Console I/O C# Console.Write(What \'s your name? ) Dim name As String = Console.ReadLine() Console.Write(How old are you? ) Dim age As Integer = Val(Console.ReadLine()) Console.WriteLine({0} is {1} years old., name, age)   \' or Console.WriteLine(name &amp; is &amp; age &amp; years old.) Dim c As Integer c = Console.Read()     \' Read single char Console.WriteLine(c)    \' Prints 65 if user enters A Console.Write(What \'s your name? ); string name = Console.ReadLine(); Console.Write(How old are you? ); int age = Convert.ToInt32(Console.ReadLine()); Console.WriteLine({0} is {1} years old., name, age); // or Console.WriteLine(name + is + age + years old.); int c = Console.Read();  // Read single char Console.WriteLine(c);    // Prints 65 if user enters A VB.NET File I/O C# Imports System.IO  \' Write out to text file Dim writer As StreamWriter = File.CreateText(c: \\myfile.txt) writer.WriteLine(Out to file.) writer.Close()  \' Read all lines from text file Dim reader As StreamReader = File.OpenText(c: \\myfile.txt) Dim line As String = reader.ReadLine() While Not line Is Nothing   Console.WriteLine(line)   line = reader.ReadLine() End While reader.Close()  \' Write out to binary file Dim str As String = Text data Dim num As Integer = 123 Dim binWriter As New BinaryWriter (File.OpenWrite(c: \\myfile.dat))  binWriter.Write(str)  binWriter.Write(num)  binWriter.Close()  \' Read from binary file Dim binReader As New BinaryReader (File.OpenRead(c: \\myfile.dat)) str = binReader.ReadString() num = binReader.ReadInt32() binReader.Close() using System.IO; // Write out to text file StreamWriter writer = File.CreateText(c: \\ \\myfile.txt); writer.WriteLine(Out to file.); writer.Close(); // Read all lines from text file StreamReader reader = File.OpenText(c: \\ \\myfile.txt); string line = reader.ReadLine(); while (line != null) {   Console.WriteLine(line);   line = reader.ReadLine(); } reader.Close(); // Write out to binary file string str = Text data; int num = 123; BinaryWriter binWriter = new BinaryWriter(File.OpenWrite(c: \\ \\myfile.dat)); binWriter.Write(str); binWriter.Write(num); binWriter.Close(); // Read from binary file BinaryReader binReader = new BinaryReader(File.OpenRead(c: \\ \\myfile.dat)); str = binReader.ReadString(); num = binReader.ReadInt32(); binReader.Close(); Home Index ",67);arrFiles[94]=new Array(95,"blog/deletewildcards.html","10 Aug 2008","How to use System.IO.File.Delete whith wildcards","","","DMM reference for Visual Basic.NET Home Index How to use System.IO.File.Delete whith wildcards Sometimes we may need to inspect one folder and delete all the files with a specific extensio. To do so we can use the fragment of code below. The example deletes all files of kind .pdf from the application folder Dim filetoerase As String For Each filetoerase In Directory.GetFiles(Application.StartupPath() &amp;  \\, *.pdf*) System.IO.File.Delete(filetoerase) Next However it \'s worth taking a look at the Directory.GetFiles method by msdn because it contains various combinations to apply. Home Index ",3);arrFiles[95]=new Array(96,"blog/vbscriptarray.html","12 Aug 2008","DMM VB Reference: A brief reminder on how to declare a multidimensional dynamic array in VBscript","","","DMM reference for Visual Basic.NET Home Index Allocation of multidimensional dynamic arrays in VBscript (vb6) We know that in order to allocate a simple monodimensional array we can write: Dim myarray(7) We can also write Dim mymultiarray(4,7) If we want to declare a dynamic array we can write: Dim dynarray() And when we need it we allocate ReDim dynarray(nitems) where nitems can be 1,2,...1000 etc. Also if we want to allocate a dynamic multidimensional array: Dim dynarray() And then when we need to allocate ReDim dynarray(nitems1,nitems2,nitems3...) Remember that nitems1.. etc Are variable or constant values. The ReDim Preserve is used to modify the size of an array without affecting its existing content; Dim dynarray(12,45,56) And when needed, we can write ReDim Preserve intArray(12, 45, 70 ). In this case the content is preserved but there is more room for the index that represent the less significative element of the array. Let \'s declare the following array: dim mybook(120,50,80). A three dimensional array can be thought as a book where the first index starting from left is the pagenumber, the second index represent the row in the page and the third index to the right represent the number of characters in the row. A three dimensional array is therefore a BOOK and the element mybook(7,23,30) is the character wich is at page 6 (admitting the book has a preface named page 0), row 22 and column 29. Going further we can say that an array of four dimensions is the representation of a box filled with books. Dim mybox(120,45,78,80). We define here a box full of books and the element mybox(70,20,65,67) is the character which is in the 69th book (because of base 0 arrays), page 19, row 64, column 66. The first index from left represent the book number in the box, the second index the page number, the third the row in the page and the fourt the character in the row. In Visual Basic.NET the declaration of a multidimensional array is slightly different; as follows with its counterparty in C#: VB.NET C#.NET Dim alfa(,,,) As Integer ReDim alfa(4, 5, 6, 7) ReDim Preserve alfa(12, 34, 56, 78) int[,,] alfa; alfa = new int[12, 4, 5]; In C# we don \'t have the preserve option but we have constructor for the type integer, (which doesn \'t exist in VB.NET) Home Index ",6);arrFiles[96]=new Array(97,"blog/vbscriptconstants.html","15 Aug 2008","DMM reference guide for Visual Basic: Vbscript constants","","","DMM reference for Visual Basic.NET Home Index These values are used in VBscript to concatenate sting and format them in a suitable format CONSTANT VALUE DESCRIPTION VBCR Chr(13) Carriage return VBCrLf Chr(13) &amp; Chr(10) Combined carriage return and line feed VBFormFeed Chr(12) Form feed VBLF Chr(10) Line feed VBNewLine Chr(13) &amp; Chr(10) Or Chr(10) Newline character appropriate for platform VBNullChar Chr(0) Character value of zero VBNullString String Of Value Zero Null string VBTab Chr(9) Horizontal (row) tab VBVerticalTab Chr(11) Vertical (column) tab Home Index ",4);arrFiles[97]=new Array(98,"blog/clsid.html","21 Mar 2009","Definition of CLSID, GUID and representation in C++","","","CLSID GUID And their representation in C++ Home Index A CLSID is a globally unique identifier that identifies a COM class object. If a server or container allows linking to its embedded objects, then one needs to register a CLSID for each supported class of objects. The CLSID key contains information used by the default COM handler to return information about a class when it is in the running state. To obtain a CLSID for an application use CoCreateGuid . The CLSID is a 128 bit number, spelled in hex, within a pair of braces like the following Registry Entry. HKEY_LOCAL_MACHINE \\SOFTWARE \\Classes \\CLSID = { C9E37C15 - DF92 - 4727 - 85D6-72E5EEB6995A } In C++ We can use the following function to create a CLSID: GUID pguid; HRESULT hr = CoCreateGuid(&amp;pguid); The above CLSID taken from the registry can be inserted into a GUID variable like this: IID ALFA = {0x C9E37C15 , 0xDF92 ,0x 4727 ,{ 0x85,0xD6,0x72,0xE5,0xEE,0xB6,0x99,0x5A }};   Home Index ",3);arrFiles[98]=new Array(99,"blog/adocom.html","22 Mar 2009","ADO in Action","","","ActiveX Data Object in short Home Index Download sample ADO is still used in application where COM support is required instead of .NET, so it is important to have a clear and easy representation of the usage in terms of database querying. The following sample is a basic Win32 application where it is invoked the ADO library to perform simple but often required tasks on various database engines. /*THIS IS THE IMPLEMENTATION OF ADO COMMAND AND ADO RECORDSET IN ORDER TO LEARN HOW TO ACCESS A DATABASE AND PERFORM THE MOST IMPORTANT OPERATION IN THIS CODE WE HAVE FOCALIZED UPON THE COMMAND OBJECT AND THE DATA CONVERSION TO DIALOGATE WITH THE DATABASE. MOREOVER THERE IS ALSO A RECORDSET OBJECT THAT IS CREATED AND SAVED TO A PERSISTENT XML FILE. */ #pragma once /*Specifies that the file will be included (opened) only once*/ /*by the compiler when compiling a source code file.*/ #include &lt;math.h&gt; #include &lt;time.h&gt; // uncomment what best suits for finding ado //#import C: \\Programmi \\File Comuni \\System \\ADO \\msado15.dll no_namespace rename(EOF, EndOfFile) #import C: \\Program Files \\Common Files \\System \\ado \\msado15.dll no_namespace rename(EOF, EndOfFile) #include stdafx.h int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]) { /* We must remember to place the Example.mdb where the Ado.Exe is placed*/ /* We can chose different kind of connections: Uncomment what you want */ /* OLE DB */ _bstr_t cn = Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Example.mdb;Persist Security Info=False; /*ODBC */ //_bstr_t cn = _T(DRIVER={Microsoft Access Driver (*.mdb)};DBQ=Example.mdb;); /*OLE DB Sql Server*/ //_bstr_t cn = Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False; //Initial Catalog=Example;Data Source=(local); /* IT DOESN \'T WORK WITH SQL EXPRESS /* A D O O B J E C T S D E C L A R A T I O N */ _ConnectionPtr conn=NULL; /* The ADO Connection */ _CommandPtr cmd=NULL; /* The ADO Command */ _RecordsetPtr rs = NULL; /* ADO Recordset declaration*/ ::CoInitialize(NULL);/* Initialize the COM environment*/ /* we create the connection */ conn.CreateInstance(__uuidof(Connection)); conn-&gt;Open((LPCTSTR)cn, , , adConnectUnspecified ); /* we create the command */ cmd.CreateInstance(__uuidof(Command)); cmd-&gt;ActiveConnection=conn; /* we Define the query and execute it */ _bstr_t F1,F2,F3,F4,F5,F6, SQL; /* What builds the SQL statement */ char v[50];/* This is a temporary buffer to store part of the sql statement */ /* The Text field */ char * buf= This is Text; F1= \'+ _bstr_t(buf)+  \',; /* The Short Integer field */ short sh = -2345; /* SHORT INTEGER */ sprintf_s(v,50,%d,sh); F2 = v; F2 += , ; /*The Long Integer field */ int in = 7859872; /* LONG INTEGER */ sprintf_s(v,50,%d,in); F3 = v; F3 += , ; /* The Float field */ float fl = 3;fl=sqrt(fl); /* FLOAT */ sprintf_s(v,50,%.15e,fl); F4 = v; F4 += , ; /* The Double field */ double db = 2;db=sqrt(db); /* DOUBLE */ sprintf_s(v,50,%.16f,db); F5 = v; F5 += ,; /* The Data field */ SYSTEMTIME Tm; /* We insert the machine local time */ char TmStr[45]; /* the buffer that contains the time */ GetLocalTime(&amp;Tm); /* The MSACCESS format for DateTime Type is #day/Month/year hour.minute.second# */ /* so the  \\x20 is the space character. */ /*P L E A S E A T T E N T I O N uncomment providing what database you use // /**************************************************/ sprintf_s (TmStr, #%02d/%02d/%04d \\x20%02d.%2d.%2d#, Tm.wDay, Tm.wMonth, /*ACCESS*/ Tm.wYear,Tm.wHour,Tm.wMinute,Tm.wSecond ); F6 = TmStr; F6 += ); // END OF SQL STATEMENT //*************************************************/ //sprintf_s (TmStr,  \'%02d/%02d/%04d \\x20%02d:%2d:%2d \', Tm.wDay, Tm.wMonth, ///*SQL SVR*/ Tm.wYear,Tm.wHour,Tm.wMinute,Tm.wSecond ); //F6 = TmStr; F6 += ); // END OF SQL STATEMENT /*************************************************/ /* At last we can connect ALL PIECES OF the SQL Statement */ SQL= Insert into Test(Field1,Field2,Field3,Field4,Field5,Field6) Values(; SQL += F1 + F2 + F3 + F4 + F5 + F6; cmd-&gt;CommandText=SQL; cmd-&gt;Execute(NULL, NULL, adCmdText); /* The query is executed */ /* Now we ask how many records there are in the table */ SQL = Select count(*) from Test; cmd-&gt;CommandText=SQL; /* executing this command we get a recordset rs with only one field that contains the record count */ rs = cmd-&gt;Execute(NULL, NULL, adCmdText); _variant_t count = rs-&gt;GetCollect(_variant_t((LONG) 0)); printf(The table contains %d records \\n,count.lVal); conn-&gt;Close(); /* ************************************************************************************* /* RECORDSET CREATION */ _bstr_t cm = Test ; /* I use the table name */ try { rs.CreateInstance(__uuidof(Recordset)); /* Open the recordset object */ rs-&gt;Open(cm, cn, adOpenKeyset, adLockOptimistic, adCmdTable); } /* Any errors? */ catch (_com_error &amp;e) { printf(e.Description()); } if (rs-&gt;RecordCount &lt; 1){printf(No records in the recordset); return 0;} rs-&gt;MoveFirst();/* to iterate along the recordset we must go to the beginning */ while(!rs-&gt;EndOfFile) { /* 1 2 3 4 5 6 are the field indexes */ printf(Field1 = %s, (char*)(_bstr_t)(rs-&gt;GetCollect(_variant_t( (LONG) 1) )) ); /* String */ printf( ); /* I let some extra space for a good visualization */ printf(Field2 = %d, rs-&gt;GetCollect(_variant_t((LONG)2)).iVal ); /* SHORT */ printf( ); printf(Field3 = %d, rs-&gt;GetCollect(_variant_t((LONG)3)).intVal ); /* INT 4 bytes */ printf( ); printf(Field4 = %f, rs-&gt;GetCollect(_variant_t((LONG)4)).fltVal ); /* FLOAT 4 bytes */ printf( ); printf(Field5 = %f, rs-&gt;GetCollect(_variant_t((LONG)5)).dblVal ); /* DOUBLE 8 bytes */ printf( ); /* I treat the DATE as a string */ printf(Field6 = %s, (char*)(_bstr_t)(rs-&gt;GetCollect(_variant_t((LONG)6)))); printf( \\n); /* The new row */ rs-&gt;MoveNext(); } rs-&gt;MoveFirst(); printf(The record number is %d,(unsigned long)( rs-&gt;RecordCount)); /* We can save the recordset in an xml format */ remove(C: \\ \\test.xml); /* we remove it IF EXIST and no thoughts any more */ rs-&gt;_xSave(C: \\ \\test.xml,adPersistXML); /* I save the recordset */ rs-&gt;Close(); CoUninitialize(); /* COM end */ return 0; }   Home Index ",11);arrFiles[99]=new Array(100,"blog/remoteaccess.html","4 Aug 2008","Remote Desktop connections tip and tricks","","","How to know more about Windows Remote Desktop Home Index Actually what is important to know wishing to manipulate the configuration of remote Desktop is that the TCP port used for listening and opening connections is the port number 3389. Such value resides in the Windows registry under the following position: HKEY_LOCAL_MACHINE \\System \\CurrentControlSet \\Control \\ TerminalServer \\WinStations \\RDP-Tcp \\PortNumber This value can be edited and modified in order to change the port for Remote Desktop. On the client side it is sufficient to specify the port by adding it to the ip of the PC we want to connect: for example 198.1.1.5:3033 Home Index ",2);arrFiles[100]=new Array(101,"blog/vpconlaptops.html","22 Feb 2009","Vpc 2007 on laptop mouse problem","","","An annoying issue when using VPC 2007 Sp1 on certain Centrino laptops that make mouse motion very unconfortable in the virtual machine. Home Index The solution of this problem could be the following: Stop running Virtual PC Open notepad Open %appdata% \\Microsoft \\Virtual PC \\options.xml Locate or create the &lt;virtual_machines&gt; section of the file and add this key: &lt;enable_idle_thread type=boolean&gt;true&lt;/enable_idle_thread&gt; Save the file and exit notepad Start Virtual PC After this modification please bear in mind that using VPC with such a fix could be battery-power costing because it simulates an idle thread to sync the CPU cycles; so better use the plugged power. Quote: The problem, has something to do with a specific version of Speedstep which is used in some intel centrino chipsets. It \'s actually a Virtual PC problem, since VMWare and Parallels didn \'t seem to have the problem. Try this fix on a centrino notebook. Home Index ",4);arrFiles[101]=new Array(102,"blog/emailverifyjs.html","22 Aug 2008","Email verification by a javascript function","","","A basic function to validate emails Home Index //function to check valid email address function isValidEmail(strEmail) { validRegExp = /^[^@]+@[^@]+.[a-z]{2,}/i; strEmail = document.forms[0].email.value; // search email text for regular exp matches if (strEmail.search(validRegExp) == -1) { alert( \'This is not a valid email address, retry \'); return false; } return true; } This function is normally invoked in the onsubmit event of a form which contains a field that needs to be validated against uncorrect email typing Home Index ",3);arrFiles[102]=new Array(103,"blog/fileassociation.html","5 Aug 2008","Restore file association for a file extension in Windows Vista and XP","","","Restore file association for a file extension in Windows Vista and XP Home Index Let \'s suppose a situation in which we have chosen to open a .dll file with notepad and checked the always use this program to open such files ; it is a terrible mistake from an anesthetic point of view because  * .dll files are dynamic linked libraries or .NET assemblies which cannot be edited by a simple word processor; truly they cannot be edited at all, so having done this, we observe, exploring for example the Windows \\System32 folder that every .dll file has the notepad extension: almost bad! How can we fix this obscenity? We can open the registry and surf to the following key: HKEY_CURRENT_USER  \\Software \\ Microsoft \\Windows \\CurrentVersion \\Explorer \\FileExts \\.dll Eliminate the sub-key UserChoice and unset subkeys OpenWithList and OpenWithProgids Refresh the registry and exit. Reboot the System and you \'ll see that *.dll files aren \'t any more marked by the notepad icon. Instead they are marked with their original icon. Home Index ",3);arrFiles[103]=new Array(104,"addprod.asp?productid=45","","addprod.asp?productid=45","","","H O M E UBICAZIONE | SUPPORT -- REGISTER | DOWNLOAD -- Software Access 2008 Administrator PRO Firewall Manager for Windos Vista & XP Image MANAGER for Web Designers King WISE Nuovo Text-To-Speech by DMM RAS .Net Manager DLL TTS Premium ENGLISH Vetrina Su Internet Access 2008 Administrator PRO Prezzo:  0,00 Quanti volete ordinarne? Quantit&agrave;: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Naviga Sulle altre categorie Assistenza Software ",9);arrFiles[104]=new Array(105,"addprod.asp?productid=51","","addprod.asp?productid=51","","","H O M E UBICAZIONE | SUPPORT -- REGISTER | DOWNLOAD -- Software Access 2008 Administrator PRO Firewall Manager for Windos Vista & XP Image MANAGER for Web Designers King WISE Nuovo Text-To-Speech by DMM RAS .Net Manager DLL TTS Premium ENGLISH Vetrina Su Internet Firewall Manager for Windos Vista & XP Prezzo:  0,00 Quanti volete ordinarne? Quantit&agrave;: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Naviga Sulle altre categorie Assistenza Software ",9);arrFiles[105]=new Array(106,"addprod.asp?productid=46","","addprod.asp?productid=46","","","H O M E UBICAZIONE | SUPPORT -- REGISTER | DOWNLOAD -- Software Access 2008 Administrator PRO Firewall Manager for Windos Vista & XP Image MANAGER for Web Designers King WISE Nuovo Text-To-Speech by DMM RAS .Net Manager DLL TTS Premium ENGLISH Vetrina Su Internet Image MANAGER for Web Designers Prezzo:  0,00 Quanti volete ordinarne? Quantit&agrave;: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Naviga Sulle altre categorie Assistenza Software ",9);arrFiles[106]=new Array(107,"addprod.asp?productid=47","","addprod.asp?productid=47","","","H O M E UBICAZIONE | SUPPORT -- REGISTER | DOWNLOAD -- Software Access 2008 Administrator PRO Firewall Manager for Windos Vista & XP Image MANAGER for Web Designers King WISE Nuovo Text-To-Speech by DMM RAS .Net Manager DLL TTS Premium ENGLISH Vetrina Su Internet King WISE Prezzo:  0,00 Quanti volete ordinarne? Quantit&agrave;: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Naviga Sulle altre categorie Assistenza Software ",9);arrFiles[107]=new Array(108,"addprod.asp?productid=49","","addprod.asp?productid=49","","","H O M E UBICAZIONE | SUPPORT -- REGISTER | DOWNLOAD -- Software Access 2008 Administrator PRO Firewall Manager for Windos Vista & XP Image MANAGER for Web Designers King WISE Nuovo Text-To-Speech by DMM RAS .Net Manager DLL TTS Premium ENGLISH Vetrina Su Internet Nuovo Text-To-Speech by DMM Prezzo:  0,00 Quanti volete ordinarne? Quantit&agrave;: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Naviga Sulle altre categorie Assistenza Software ",9);arrFiles[108]=new Array(109,"addprod.asp?productid=53","","addprod.asp?productid=53","","","H O M E UBICAZIONE | SUPPORT -- REGISTER | DOWNLOAD -- Software Access 2008 Administrator PRO Firewall Manager for Windos Vista & XP Image MANAGER for Web Designers King WISE Nuovo Text-To-Speech by DMM RAS .Net Manager DLL TTS Premium ENGLISH Vetrina Su Internet RAS .Net Manager DLL Prezzo:  0,00 Quanti volete ordinarne? Quantit&agrave;: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Naviga Sulle altre categorie Assistenza Software ",9);arrFiles[109]=new Array(110,"addprod.asp?productid=50","","addprod.asp?productid=50","","","H O M E UBICAZIONE | SUPPORT -- REGISTER | DOWNLOAD -- Software Access 2008 Administrator PRO Firewall Manager for Windos Vista & XP Image MANAGER for Web Designers King WISE Nuovo Text-To-Speech by DMM RAS .Net Manager DLL TTS Premium ENGLISH Vetrina Su Internet TTS Premium ENGLISH Prezzo:  0,00 Quanti volete ordinarne? Quantit&agrave;: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Naviga Sulle altre categorie Assistenza Software ",9);arrFiles[110]=new Array(111,"addprod.asp?productid=48","","addprod.asp?productid=48","","","H O M E UBICAZIONE | SUPPORT -- REGISTER | DOWNLOAD -- Software Access 2008 Administrator PRO Firewall Manager for Windos Vista & XP Image MANAGER for Web Designers King WISE Nuovo Text-To-Speech by DMM RAS .Net Manager DLL TTS Premium ENGLISH Vetrina Su Internet Vetrina Su Internet Prezzo:  0,00 Quanti volete ordinarne? Quantit&agrave;: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Naviga Sulle altre categorie Assistenza Software ",9);arrFiles[111]=new Array(112,"blog//aspnet.html","1 Jul 2009","Index of ASP.NET DMM Reference","","","Home Welcome to ASP.NET DMM Reference Topics: Difference between Authentication and Authorization Absolute position of ASP.NET controls on Visual Studio 2008 How to extract key values from appsettings section of a web.config file Important consideration on web.config when uploading large files Building an access connection string to use with ADO.NET objects Web Services Base Theory and Wsdl.exe, Disco.exe usage Service-oriented architecture (SOA) definition Managing form authentication for anonymous user using in built login controls ASP.NET IIS Registration Tool (Aspnet_regiis.exe) Correct syntax for importing namespaces in Asp.Net pages without code-behind file How to configure Smtp in Windows Server 2008 Enterprise Be aware that receiving smtp mail may fail if under Norton Antivirus or Avast or other kind of AV protection Two different examples of sending mail by Smtp by means of .Net 3.0 System.Net.Mail class AutoEventWireup meaning in Page directive Passing datatable among webforms using application locking Home ",9);