title: Does OPOS works only for x86 .NET applications?
body: <p>I was trying to interface with OPOS interface a DataLogic-QuickScan-QD2131 handheld scanner using the following code:</p>
  <pre><code>class Program 
  {
      static OposScanner_CCO.OPOSScanner scanner;
  
      static void Main(string[] args)
      {
          scanner = new OposScanner_CCO.OPOSScanner();
          scanner.Open(&quot;USBHHScanner&quot;);
          scanner.ClaimDevice(1000);
  
          if (scanner.Claimed)
          {
              Console.WriteLine(&quot;Claimed succesfully&quot;);
              scanner.DeviceEnabled = true;
              scanner.DataEventEnabled = true;
              scanner.DecodeData = true;
              scanner.FreezeEvents = false;
              scanner.DataEvent += Scanner_DataEvent;
          }
          Console.ReadKey();
      }
  
      private static void Scanner_DataEvent(int Status)
      {
          Console.WriteLine(&quot;Scanned {0}&quot;, Status);
      }
  }
  </code></pre>
  <p>When I'm compiling this program targeting &quot;Any CPU&quot; this wouldn't  work, throwing exception at the first line of Main:</p>
  <blockquote>
  <p>System.Runtime.InteropServices.COMException: 'Retrieving the COM class factory for component with CLSID {CCB90182-B81E-11D2-AB74-0040054C3719} failed due to the following error: 80040154 Class not registered (0x80040154 (REGDB_E_CLASSNOTREG)).</p>
  </blockquote>
  <p>But when compiles to x86 it sort of working.</p>
  <p>Thanks in advance!</p>