ciao,
credo che per ogni tipo di file sandard ci sia un suo ocx. Se invece vuoi fare una cosa che vada bene per tutti i tipi di file (compreso ".exe") fai così:
Creati un programma a parte dove vai a leggere il file da nascondere un byte alla volta, e trasforma ogni byte in formato stringa di 2 bytes che rappresenta il suo valore esadecimale. Per esempio se leggi "a" trasformi in "61", se leggi il punto "." trasforma in "2E"... e vai a scrivere in un file di testo in modo da crearti un modulo vb (.bas) del tipo
codice:
Function ScriviFile(FileOutput As String)
 Dim StringaApp(NumeroDiStringhe) As String
 Dim ContatoreStringa As Long
 Stringa(1) = "01F5A30D0AE7..."
 Stringa(2) = "46816E84FD84..."
 ...
 Stringa(NumeroDiStringhe) = "000000000000..."
 Open FileOutput For Output as #1
 For ContatoreStringa = 1 To NumeroDiStringhe
  For I = 1 To Len(Stringa(ContatoreStringa)) Step 2
   Print #1, Chr(Var("&H" & Mid(Stringa(ContatoreStringa),I,2)));
  Next I
 Next ContatoreStringa
End Function
Dove in Stringa(n) vai ad inserire le codifiche esadecimali del file da nascondere, mentre il resto è fisso. Quindi importa il modulo creato nel tuo programma e richiama la funzione ScriviFile.
In fin dei conti fare il programma che crea il modulo è come un fare un ocx che formatta qualsiasi file. Una volta creato va bene per sempre. Sembra lungo, ma si fa in 10 minuti