public static extern int flycaptureGetCameraInformation(int flycapContext,
                                                         ref FlyCaptureInfo arInfo);
		public static extern int flycaptureGetCameraInformation(int flycapContext, 
			ref FlyCaptureInfo arInfo);
        static void Main(string[] args)
        {
            int             flycapContext;
            int             ret;
            FlyCaptureInfo  flycapInfo     = new FlyCaptureInfo();
            FlyCaptureImage image          = new FlyCaptureImage();
            FlyCaptureImage flycapRGBImage = new FlyCaptureImage();

            // Create the context.
            ret = flycaptureCreateContext(&flycapContext);
            if (ret != 0)
            {
                reportError(ret, "flycaptureCreateContext");
                return;
            }

            // Initialize the camera.
            ret = flycaptureInitialize(flycapContext, _CAMERA_INDEX);
            if (ret != 0)
            {
                reportError(ret, "flycaptureInitialize");
                return;
            }

            // Get the info for this camera.
            ret = flycaptureGetCameraInformation(flycapContext, ref flycapInfo);
            if (ret != 0)
            {
                reportError(ret, "flycaptureGetCameraInformation");
                return;
            }
            if (flycapInfo.CameraType ==
                FlyCaptureCameraType.FLYCAPTURE_BLACK_AND_WHITE)
            {
                Console.Write("Model: B&W " + flycapInfo.pszModelString + "\n"
                              + "Serial #: " + flycapInfo.SerialNumber + "\n");
            }
            else if (flycapInfo.CameraType ==
                     FlyCaptureCameraType.FLYCAPTURE_COLOR)
            {
                Console.Write("Model: Colour " + flycapInfo.pszModelString + "\n"
                              + "Serial #: " + flycapInfo.SerialNumber + "\n");
            }

            // Start FlyCapture.
            ret = flycaptureStart(flycapContext,
                                  FlyCaptureVideoMode.FLYCAPTURE_VIDEOMODE_ANY,
                                  FlyCaptureFrameRate.FLYCAPTURE_FRAMERATE_ANY);
            if (ret != 0)
            {
                reportError(ret, "flycaptureStart");
                return;
            }

            // Start grabbing images.
            Console.Write("\nGrabbing Images ");
            for (int iImage = 0; iImage < _IMAGES_TO_GRAB; iImage++)
            {
                ret = flycaptureGrabImage2(flycapContext, ref image);
                if (ret != 0)
                {
                    reportError(ret, "flycaptureGrabImage2");
                    return;
                }
                Console.Write(".");
            }

            // Convert the image.
            InitBitmapStructure(image.iRows, image.iCols, ref flycapRGBImage);
            flycapRGBImage.pixelFormat = FlyCapturePixelFormat.FLYCAPTURE_BGR;
            ret = flycaptureConvertImage(flycapContext, ref image,
                                         ref flycapRGBImage);
            if (ret != 0)
            {
                reportError(ret, "flycaptureConvertImage");
                return;
            }

            // Save the image.
            Console.Write("\nSaving Last Image ");
            ret = flycaptureSaveImage(flycapContext, ref flycapRGBImage, "raw.bmp",
                                      FlyCaptureImageFileFormat.FLYCAPTURE_FILEFORMAT_BMP);
            if (ret != 0)
            {
                reportError(ret, "flycaptureSaveImage");
                return;
            }
            else
            {
                System.Diagnostics.Process.Start("mspaint.exe", "raw.bmp");
            }

            // Stop FlyCapture.
            ret = flycaptureStop(flycapContext);
            if (ret != 0)
            {
                reportError(ret, "flycaptureStop");
                return;
            }

            // Destroy the context.
            ret = flycaptureDestroyContext(flycapContext);
            if (ret != 0)
            {
                reportError(ret, "flycaptureDestroyContext");
                return;
            }

            Console.Write("\nPress Enter");
            Console.Read();
        }
		static void Main(string[] args)
		{
			int	flycapContext;
			int	ret;
			FlyCaptureInfo flycapInfo = new FlyCaptureInfo();
			FlyCaptureImage image = new FlyCaptureImage();
			FlyCaptureImage flycapRGBImage = new FlyCaptureImage();

			// Create the context.
			ret	= flycaptureCreateContext(&flycapContext);
			if (ret	!= 0 )
			{
				reportError(ret,"flycaptureCreateContext");
				return;
			}
				
			// Initialize the camera.
			ret = flycaptureInitialize( flycapContext, _CAMERA_INDEX );
			if (ret	!= 0 )
			{
				reportError(ret,"flycaptureInitialize");
				return;
			}

			// Get the info for this camera.
			ret = flycaptureGetCameraInformation( flycapContext, ref flycapInfo );
			if (ret	!= 0 )
			{
				reportError(ret,"flycaptureGetCameraInformation");
				return;
			}
			if (flycapInfo.CameraType == 
				FlyCaptureCameraType.FLYCAPTURE_BLACK_AND_WHITE)
			{
				Console.Write( "Model: B&W " + flycapInfo.pszModelString + "\n"
					+ "Serial #: " + flycapInfo.SerialNumber + "\n");
			}
			else if (flycapInfo.CameraType == 
				FlyCaptureCameraType.FLYCAPTURE_COLOR)
			{
				Console.Write( "Model: Colour " + flycapInfo.pszModelString + "\n"
					+ "Serial #: " + flycapInfo.SerialNumber + "\n");
			}
			
			// Start FlyCapture.
			ret	= flycaptureStart( flycapContext, 
				FlyCaptureVideoMode.FLYCAPTURE_VIDEOMODE_ANY,
				FlyCaptureFrameRate.FLYCAPTURE_FRAMERATE_ANY );
			if (ret	!= 0 )
			{
				reportError(ret,"flycaptureStart");
				return;
			}

			// Start grabbing images.
			Console.Write("\nGrabbing Images ");
			for ( int iImage = 0; iImage < _IMAGES_TO_GRAB; iImage++ )
			{
				ret = flycaptureGrabImage2( flycapContext, ref image );
				if (ret	!= 0 )
				{
					reportError(ret,"flycaptureGrabImage2");
					return;
				}
				Console.Write(".");
			}

			// Convert the image.
			InitBitmapStructure(image.iRows, image.iCols, ref flycapRGBImage );
			flycapRGBImage.pixelFormat = FlyCapturePixelFormat.FLYCAPTURE_BGR;
			ret = flycaptureConvertImage( flycapContext, ref image, 
				ref flycapRGBImage);
			if (ret	!= 0 )
			{
				reportError(ret,"flycaptureConvertImage");
				return;
			}
			
			// Save the image.
			Console.Write("\nSaving Last Image ");
			ret = flycaptureSaveImage( flycapContext, ref flycapRGBImage, "raw.bmp", 
				FlyCaptureImageFileFormat.FLYCAPTURE_FILEFORMAT_BMP );
			if (ret	!= 0 )
			{
				reportError(ret,"flycaptureSaveImage");
				return;
			}
			else
				System.Diagnostics.Process.Start("mspaint.exe", "raw.bmp");

			// Stop FlyCapture.
			ret = flycaptureStop(flycapContext);
			if (ret	!= 0 )
			{
				reportError(ret,"flycaptureStop");
				return;
			}

			// Destroy the context.
			ret = flycaptureDestroyContext(flycapContext);
			if (ret	!= 0 )
			{
				reportError(ret,"flycaptureDestroyContext");
				return;
			}

			Console.Write("\nPress Enter");
			Console.Read();
		}