p = r"C:/Users/locpham/SonicForgeStudio/native_bridge/src/Vst3Instrument.cpp" data = open(p, "rb").read() n = b"\r\n" old1 = n.join([ b" tresult queryInterface(const char* iid, void** v) override {", b" if (std::memcmp(iid, Steinberg::Vst::IComponentHandler::iid, 16) == 0 ||", b" std::memcmp(iid, Steinberg::FUnknown::iid, 16) == 0) {", b" *v = static_cast(this);", b" addRef();", b" return kResultOk;", b" }", b" *v = nullptr;", b" return kNoInterface;", b" }", ]) new1 = n.join([ b" tresult queryInterface(const char*, void** v) override {", b" *v = nullptr;", b" return kNoInterface;", b" }", ]) old2 = n.join([ b" tresult queryInterface(const char* iid, void** v) override {", b" if (std::memcmp(iid, Steinberg::IPlugFrame::iid, 16) == 0 ||", b" std::memcmp(iid, Steinberg::FUnknown::iid, 16) == 0) {", b" *v = static_cast(this);", b" addRef();", b" return kResultOk;", b" }", b" *v = nullptr;", b" return kNoInterface;", b" }", ]) new2 = n.join([ b" tresult queryInterface(const char*, void** v) override {", b" *v = nullptr;", b" return kNoInterface;", b" }", ]) c1 = data.count(old1) c2 = data.count(old2) data = data.replace(old1, new1).replace(old2, new2) open(p, "wb").write(data) print(f"edit1={c1} edit2={c2}")