コード例 #1
0
        private void TestScript()
        {
            short w1, w2, w3;

            m_head.GetScriptCount(out w1);

            m_head.AddScript("foo", "barism", 0);

            m_head.GetScriptCount(out w2);
            Debug.Assert(w2 == w1 + 1);

            long  l;
            short pLen = 0, pCLen = 0;

            m_head.GetScript(w1, null, ref pLen, null, ref pCLen, out l);

            StringBuilder sbType = new StringBuilder(pLen);
            StringBuilder sbCom  = new StringBuilder(pCLen);

            m_head.GetScript(w1, sbType, ref pLen, sbCom, ref pCLen, out l);

            m_head.RemoveScript(w1);

            m_head.GetScriptCount(out w3);
            Debug.Assert(w3 == w1);
        }
コード例 #2
0
ファイル: WMVCopy.cs プロジェクト: gchudov/WindowsMediaLib
        //------------------------------------------------------------------------------
        // Name: CWMVCopy::CopyScriptInHeader()
        // Desc: Copies the script in the header of the source file to the header
        //       of the destination file .
        //------------------------------------------------------------------------------
        protected void CopyScriptInHeader()
        {
            short         cScript       = 0;
            StringBuilder pwszType      = null;
            StringBuilder pwszCommand   = null;
            long          cnsScriptTime = 0;

            m_pReaderHeaderInfo.GetScriptCount(out cScript);

            for (short i = 0; i < cScript; i++)
            {
                short cchTypeLen    = 0;
                short cchCommandLen = 0;

                //
                // Get the memory size for this script
                //
                m_pReaderHeaderInfo.GetScript(i,
                                              null,
                                              ref cchTypeLen,
                                              null,
                                              ref cchCommandLen,
                                              out cnsScriptTime);

                pwszType    = new StringBuilder(cchTypeLen);
                pwszCommand = new StringBuilder(cchCommandLen);

                //
                // Get the script
                //
                m_pReaderHeaderInfo.GetScript(i,
                                              pwszType,
                                              ref cchTypeLen,
                                              pwszCommand,
                                              ref cchCommandLen,
                                              out cnsScriptTime);

                //
                // Add the script to the writer
                //
                m_pWriterHeaderInfo.AddScript(pwszType.ToString(),
                                              pwszCommand.ToString(),
                                              cnsScriptTime);
            }
        }
コード例 #3
0
ファイル: WMVCopy.cs プロジェクト: gchudov/WindowsMediaLib
        //------------------------------------------------------------------------------
        // Name: CWMVCopy::CopyScriptInList()
        // Desc: Copies scripts in m_ScriptList to the header of the writer.
        //------------------------------------------------------------------------------
        protected void CopyScriptInList(string pwszOutputFile)
        {
            IWMMetadataEditor pEditor           = null;
            IWMHeaderInfo     pWriterHeaderInfo = null;

            //
            // Scripts can be added by the metadata editor.
            // Create an editor
            //
            WMUtils.WMCreateEditor(out pEditor);

            try
            {
                //
                // Open the output using the editor
                //
                pEditor.Open(pwszOutputFile);

                pWriterHeaderInfo = pEditor as IWMHeaderInfo;

                foreach (CScript pScript in m_ScriptList)
                {
                    //
                    // Add the script to the writer
                    //
                    pWriterHeaderInfo.AddScript(pScript.m_pwszType,
                                                pScript.m_pwszParameter,
                                                pScript.m_cnsTime);
                }

                //
                // Close and release the editor
                //
                pEditor.Flush();

                pEditor.Close();
            }
            finally
            {
                Marshal.ReleaseComObject(pEditor);
            }
        }
コード例 #4
0
ファイル: WMHeaderInfo.cs プロジェクト: 4dvn/yeti
 /// <summary>
 /// Add a scrip. Wraps IWMHeaderInfo.AddScript
 /// </summary>
 /// <param name="s">Scrip to add. <see cref="Script"/></param>
 public void AddScript(Script s)
 {
     m_HeaderInfo.AddScript(s.Type, s.Command, s.Time);
 }