[Flags]
enum FAF:int
{
FAF_ATTRIBUTES = 0x01,
FAF_CREATION_TIME = 0x02,
FAF_LASTACCESS_TIME = 0x04,
FAF_LASTWRITE_TIME = 0x08,
FAF_SIZE_HIGH = 0x10,
FAF_SIZE_LOW = 0x20,
FAF_OID = 0x40,
FAF_NAME = 0x80,
//FAF_ATTRIB_CHILDREN = 0x80,
//FAF_ATTRIB_NO_HIDDEN = &H2000,
//FAF_FOLDERS_ONLY = &H4000,
//FAF_NO_HIDDEN_SYS_ROMMODULES = &H8000,
//FAF_GETTARGET = &H10000
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
class CE_FIND_DATA
{
int dwFileAttributes;
int ftCreationTimeLo, ftCreationTimeHi, ftLastAccessTimeLo, ftLastAccessTimeHi;
int ftLastWriteTimeLo, ftLastWriteTimeHi, nFileSizeLo, nFileSizeHi;
int dwOID;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
string cFileName;
public override string ToString()
{
return cFileName;
}
}
public bool FindAllFiles(string szPath)
{
IntPtr pData;
int cData;
bool bresult;
Create a NEW ceFindData Structure
CeFindData[] myCeFindDataS = new CeFindData[1];
bresult = CeFindAllFiles(szPath, (int)FAF.FAF_ATTRIBUTES | (int)FAF.FAF_NAME, out cData, out pData);
if (bresult)
{
IntPtr p = pData;
for (int i=0; i< cData ;i++)
{
CE_FIND_DATA fd;
fd = (CE_FIND_DATA) Marshal.PtrToStructure(p, typeof(CE_FIND_DATA));
p = new IntPtr(p.ToInt32() + Marshal.SizeOf(typeof(CE_FIND_DATA)));
}
}
return bresult;
}
viernes, junio 20, 2008
Navegando el FileSystem desde Desktop a traves de RAPI
lunes, junio 09, 2008
30 días de .Net Compact Framework
Minutes to Midnight Countdown | Bluetooth Manager | GPS Compass | Mileage Tracker |
Mobile Capture | Pocket PasswordGen | Mobile FX | What will be next? |
miércoles, junio 04, 2008
Generando una dll para Compact Framework con CodeDom
A continuación dejo el código:
using System;
using System.Text;
using Microsoft.CSharp;
using System.CodeDom.Compiler;
using Microsoft.Win32;
using System.IO;
using System.CodeDom;
public partial class CompactAssembly
{
public static void CreateTestDll()
{
StringBuilder sb = new StringBuilder("");
sb.Append("namespace CSCodeEvaler{ \n");
sb.Append("public class CSCodeEvaler{ \n");
sb.Append("public object EvalCode(){\n");
sb.Append("return 1; \n");
sb.Append("} \n");
sb.Append("} \n");
sb.Append("}\n");
CompactAssembly.CompileCompactAssembly(sb.ToString(), "CodeDomGenerated.dll");
}
public static bool CompileCompactAssembly(string codeToCompile, string outAssemblyName)
{
CodeDomProvider csp = new Microsoft.CSharp.CSharpCodeProvider();
CompilerParameters cp = new CompilerParameters();
cp.OutputAssembly = outAssemblyName;
cp.GenerateExecutable = false;
cp.GenerateInMemory = false;
cp.CompilerOptions = @"/noconfig /nostdlib";
cp.ReferencedAssemblies.Add(Path.Combine(@"C:\Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\CompactFramework\2.0\v2.0\WindowsCE", "mscorlib.dll"));
CompilerResults cr = csp.CompileAssemblyFromSource(cp, codeToCompile);
return cr.Errors.Count == 0;
}
}
martes, junio 03, 2008
Microsoft Project Code Named Velocity - CTP1
Fuente: Jorge Serrano - MVP Visual Developer - Visual BasicMicrosoft ha sacado a la luz su proyecto en nombre clave Velocity y en su
versión preliminar CTP1. Velocity es una plataforma que permite trabajar con
datos distribuidos en memoria caché dentro de aplicaciones .NET que requieren un
acceso a datos muy rápido en velocidad, escalado y con alta disponibilidad.
La descarga en inglés apenas ocupa 2.5 Mb y la podréis encontrar en este enlace. Dentro de la página de descarga, recomiendo mirar los comentarios acerca de ASP.NET y Velocity. ;-)
También podréis acceder al blog oficial de Velocity en este otro enlace, aunque aún no hay ni una sola entrada. De forma adicional, hay ya disponible un foro técnico y de discusión sobre Velocity en este enlace, aunque al igual que el anterior, no hay aún publicada ninguna información.
Como pode ver, se trata de un proyecto muy muy nuevo, hecho público apenas hace unas horas.
Espero que os resulte interesante.