Best way to handle repetitive error code or return value
Okay, well here is what I would probably do in this situation. If the error codes you are getting are consistent this will make this type of solution even better (consistent as in "FileNotFound" error code is always -42 or something like that).

I would add a private method that throws an "Uninitialized" exception if the object has not been initialized. There is no need to be checking that twice for each function call.

private void ValidateInitialized()
{
    throw new LibraryUninitializedException(); // Just create this exception class
}


Then I would create a helper method that takes a Func&lt;int&gt; that you can call from each of the wrapper methods. The helper method will handle the error code stuff for you. It would look something like this (note: I have not compiled this, so I may have some minor syntax errors).

private void DoThirdPartyOperation(Func&lt;int&gt; operation, string message = "")
{
     ValidateInitialized();
     switch(operation())
     {
         case 0:
             // No error - do nothing
             break;
         case someErrorCode:
             throw new SomeErrorException(message);
             break;
         case someOtherErrorCode:
             throw new SomeOtherErrorException(message);
             break;

         default:
             // Choose either to throw some sort of general exception and include
             // the error code in it OR throw an UnrecognizedErrorException
     }
}

public void Operation1(someParameter)
{
    DoThirdPartyOperation(() =&gt; { ThirdParty.Operation1(someParameter); });
}

public void Operation2(someParameter)
{
    DoThirdPartyOperation(() =&gt; { ThirdParty.Operation2(someParameter); },
        "Failed performing Operation2");
}