BLOG ARTICLE Computer/.NET Compact Framework | 2 ARTICLE FOUND

  1. 2006.09.13 Sound Play Class
  2. 2006.09.13 PDA 전원 정보

using System;
using System.IO;
using System.Runtime.InteropServices;

public class Sound
{
   private byte[] m_soundBytes;
   private string m_fileName;

   private enum Flags
   {
       SND_SYNC = 0x0000,  /* play synchronously (default) */
       SND_ASYNC = 0x0001,  /* play asynchronously */
       SND_NODEFAULT = 0x0002,  /* silence (!default) if sound not found */
       SND_MEMORY = 0x0004,  /* pszSound points to a memory file */
       SND_LOOP = 0x0008,  /* loop the sound until next sndPlaySound */
       SND_NOSTOP = 0x0010,  /* don't stop any currently playing sound */
       SND_NOWAIT = 0x00002000, /* don't wait if the driver is busy */
       SND_ALIAS = 0x00010000, /* name is a registry alias */
       SND_ALIAS_ID = 0x00110000, /* alias is a predefined ID */
       SND_FILENAME = 0x00020000, /* name is file name */
       SND_RESOURCE = 0x00040004  /* name is resource name or atom */
   }

   [DllImport("CoreDll.DLL", EntryPoint = "PlaySound", SetLastError = true)]
   private extern static int WCE_PlaySound(string szSound, IntPtr hMod, int flags);

   [DllImport("CoreDll.DLL", EntryPoint = "PlaySound", SetLastError = true)]
   private extern static int WCE_PlaySoundBytes(byte[] szSound, IntPtr hMod, int flags);

   /// <summary>
   /// Construct the Sound object to play sound data from the specified file.
   /// </summary>
   public Sound(string fileName)
   {
       m_fileName = fileName;
   }

   /// <summary>
   /// Construct the Sound object to play sound data from the specified stream.
   /// </summary>
   public Sound(Stream stream)
   {
       // read the data from the stream
       m_soundBytes = new byte[stream.Length];
       stream.Read(m_soundBytes, 0, (int)stream.Length);
   }

   /// <summary>
   /// Play the sound
   /// </summary>
   public void Play()
   {
       // if a file name has been registered, call WCE_PlaySound,
       //  otherwise call WCE_PlaySoundBytes
       if (m_fileName != null)
           WCE_PlaySound(m_fileName, IntPtr.Zero, (int)(Flags.SND_ASYNC | Flags.SND_FILENAME));
       else
           WCE_PlaySoundBytes(m_soundBytes, IntPtr.Zero, (int)(Flags.SND_ASYNC | Flags.SND_MEMORY));
   }
}

PDA에서 소리 파일을 재생할 수 있는 팁.
Sound 객체 생성 후 play() 메소드 사용. 비동기로 작동함.
참조: http://msdn2.microsoft.com/en-us/library/ms229685.aspx

'Computer > .NET Compact Framework' 카테고리의 다른 글

PDA 전원 정보  (0) 2006.09.13
AND

using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace AZKI
{
  public partial class MainForm : Form
  {
       // p/invoke signature
       [DllImport("coredll.dll", EntryPoint = "GetSystemPowerStatusEx2", SetLastError = true)]
       public extern static Int32 GetSystemPowerStatus(
                                                       ref PowerStatus powerStatus,
                                                       Int32 length,
                                                       Boolean update);

       //  SYSTEM_POWER_STATUS_EX2.ACLineStatus
       public enum ACLineStatus : byte
       {
           Offline = 0,
           Online = 1,
           Unknown = 255,
       }
       // managed version of the SYSTEM_POWER_STATUS_EX2 structure
       public struct PowerStatus
       {
           public ACLineStatus ACLineState;
           public Byte BatteryFlag;
           public Byte BatteryLifePercent;
           public Byte Reserved1;
           public Int32 BatteryLifeTime;
           public Int32 BatteryFullLifeTime;
           public Byte Reserved2;
           public Byte BackupBatteryFlag;
           public Byte BackupBatteryLifePercent;
           public Byte Reserved3;
           public Int32 BackupBatteryLifeTime;
           public Int32 BackupBatteryFullLifeTime;
           public Int32 BatteryVoltage;
           public Int32 BatteryCurrent;
           public Int32 BatteryAverageCurrent;
           public Int32 BatteryAverageInterval;
           public Int32 BatterymAHourConsumed;
           public Int32 BatteryTemperature;
           public Int32 BackupBatteryVoltage;
           public Byte BatteryChemistry;
       }

       private void button1_Click(object sender, EventArgs e)
       {
           PowerStatus myPowerStatus = new PowerStatus();
           // query the device's power status
           Int32 result = GetSystemPowerStatus(ref myPowerStatus,
               Marshal.SizeOf(myPowerStatus),
               true);
           if (!result.Equals(0))
           {
               MessageBox.Show("Ac Line: " +
                   myPowerStatus.ACLineState.ToString());
               MessageBox.Show("Remain: " +
                   myPowerStatus.BatteryLifePercent + "%");
           }
       }
   }
}

컴팩트 프레임워크에서 PDA의 전원(power) 정보를 알아볼 수 있는 팁.
구조체 정보 등은 아래를 참조.
참조: Windows CE .NET SDK documentation (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceui40/html/cerefsystem_power_status_ex2.asp)

'Computer > .NET Compact Framework' 카테고리의 다른 글

Sound Play Class  (0) 2006.09.13
AND