private void extractOCXName(DirectoryEntry dir, Metadata metadata) {
        if (! dir.hasEntry(OCX_NAME)) {
            return;
        }
        try {
            Entry e = dir.getEntry(OCX_NAME);
            if (!e.isDocumentEntry()) {
                return;
            }
            UnsynchronizedByteArrayOutputStream bos = UnsynchronizedByteArrayOutputStream.builder().get();
            try (DocumentInputStream dis = new DocumentInputStream((DocumentEntry) e)) {
                IOUtils.copy(dis, bos);
            }
            byte[] bytes = bos.toByteArray();
            int charCount = (bytes.length - 4);
            if (charCount < 0) {
                return;
            }
            if (charCount % 2 != 0) {
                return;
            }
            charCount /= 2;
            String ocxName = StringUtil.getFromUnicodeLE0Terminated(bytes, 0, charCount);
            metadata.set(Office.OCX_NAME, ocxName);
        } catch (IOException e) {
            //log this?
        }
    }
Handle an office document that's embedded at the POIFS level
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/AbstractPOIFSExtractor.java